versiones lenguaje funciones ejemplos descargar as3 flex actionscript-3 actionscript

flex - funciones - as3 lenguaje



Conversión de cadena a uint en actionscript/Flex (2)

El color no es una propiedad, es un estilo. Necesitas definir el estilo de esta manera:

[Style(name="labelColor", type="uint", format="Color" )]

(enciérrelo en la etiqueta si lo define directamente en MXML). A continuación, debe agregar algunos ActionScript para manejar este estilo y aplicarlo a cualquier control que necesite, consulte http://livedocs.adobe.com/flex/3/html/help.html?content=skinstyle_1.html para obtener más información. información.

Estoy creando un componente y quiero exponer una propiedad de color como lo hacen muchos controles Flex, digamos que tengo un componente simple como este, vamos a llamarlo foo_label:

<mx:Canvas> <mx:Script> [Bindable] public var color:uint; </mx:Script> <mx:Label text="foobar" color="{color}" /> </mx:Canvas>

y luego agrega el componente en otro archivo mxml, algo como:

<foo:foo_label color="red" />

Cuando compilo el compilador se queja: no se puede analizar el valor de tipo uint del texto ''rojo''. Sin embargo, si uso una etiqueta simple, puedo hacer

<mx:Label text="foobar" color="red">

sin ningún problema, y ​​la propiedad de color sigue siendo type uint.

Mi pregunta es ¿cómo puedo exponer una propiedad pública para poder controlar el color del texto de mis componentes? ¿Por qué puedo usar la cadena "roja" como un campo uint para los controles mx, pero no puedo hacer lo mismo en un componente personalizado, ¿tengo que hacer algo especial?

Gracias.


Aquí tienes 2 de mis funciones de utils:

public static function convertUintToString( color:uint ):String { return color.toString(16); } public static function convertStringToUint(value:String, mask:String):uint { var colorString:String = "0x" + value; var colorUint:uint = mx.core.Singleton.getInstance("mx.styles::IStyleManager2").getColorName( colorString ); return colorUint; }