using CxLinear.Color;
using CxLinear.ARGB;
using CxLinear.FColor;
class CxLinear
{
public static function main ()
{
var myColor = CxMacro.allocateStruct (Color);
myColor.Scolor (0x16C9E306); //S[propery] = set;
hex("color", myColor.Gcolor() ); //G[property] = get;
hex("a", myColor.Ga() );
hex("r", myColor.Gr() );
hex("g", myColor.Gg() );
hex("b", myColor.Gb() );
myColor.Sg (0x16);
hex("color", myColor.Gcolor() );
trace ("asfloat: " + myColor.Gasfloat ());
byteCodeSample();
}
static function hex(?s:String, i:Int)
{
trace (s+": "+StringTools.hex (i));
}
static function byteCodeSample():Int
{
var struct = CxMacro.allocateStruct (Color);
struct.Scolor(0xFFFFFFFF);
struct.Sr(0xC9);
return struct.Gcolor();
}
}
class Color extends CxStruct
{
var color:Int;
}
class ARGB extends CxStruct, implements CxStruct.CxUnion<Color>
{
var b:Byte;
var g:Byte;
var r:Byte;
var a:Byte;
}
class FColor extends CxStruct, implements CxStruct.CxUnion<Color>
{
var asfloat:Float;
}