Unfortunately, styles don't work with binding. Here's another approach:
// inside SystemMessage.mxml
<mx:Script>
<![CDATA[
[Bindable]
public var message:String;
public function set textColor(c:Number):Void
{
LblSystemMessage.setStyle("color", c);
}
]]>
<mx:Script>
Then, from the outside you do:
this.TheSystemMessageDialog.textColor = 0x333333;
The implicit setter function inside SystemMessage.mxml looks like a public
member to the outside world but allows you to encapsulate functionality. Note,
the color value is typed as Number.
Dirk.
> -----Original Message-----
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of Ralf Rottmann
> Sent: Thursday, December 08, 2005 2:56 PM
> To: [email protected]
> Subject: RE: [flexcoders] Part 2: Issues with State and
> Component creation (Flex 2.0 Alpha)
>
> Dirk,
>
> Works perfectly well - thank you.
> The last step to making this completely work is: How about
> the text color. Binding the color property to a public
> bindable String variable did not do the trick:
>
> <mx:Label id="LblSystemMessage" width="450" text="{message}"
> color="{textColor}"/>
>
> and later
>
> this.TheSystemMessageDialog.textColor="#333333";
>
> does not work.
>
>
>
>
> Ralf
>
> ---------------------------
> -----Original Message-----
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of Dirk Eismann
> Sent: Donnerstag, 8. Dezember 2005 14:42
> To: [email protected]
> Subject: RE: [flexcoders] Part 2: Issues with State and
> Component creation (Flex 2.0 Alpha)
>
> Hi,
>
> try to expose the text that should be displayed in the
> SystemMessage component as a public member and let the Label
> bind to this member, i.e.
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Canvas xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*">
> <mx:Script>
> <![CDATA[
> [Bindable]
> public var message:String;
> ]]>
> <mx:Script>
> <mx:Label id="TheMessage" text="{message}"/> </mx:Canvas>
>
> Later you do
>
> private function addLabel():Void
> {
> currentState="LabelAdded";
> TheSystemMessage.message = "I have been added";
> }
>
> Dirk.
>
> ________________________________
>
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of Ralf Rottmann
> Sent: Thursday, December 08, 2005 2:34 PM
> To: [email protected]
> Subject: [flexcoders] Part 2: Issues with State and
> Component creation (Flex 2.0 Alpha)
>
>
>
> Here is some code which illustrates the issue:
>
>
>
> 1. The Component (File SystemMessage.mxml):
>
>
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <mx:Canvas
> xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*">
>
> <mx:Label id="TheMessage"/>
>
> </mx:Canvas>
>
>
>
>
>
> 2. The main application (File StatePlayground.mxml):
>
>
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <mx:Application
> xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns:local="*">
>
> <mx:Script>
>
> <![CDATA[
>
> private function addLabel():Void
>
> {
>
> currentState="LabelAdded";
>
>
> TheSystemMessage.TheMessage.text = "I have been added";
>
> }
>
> private function removeLabel():Void
>
> {
>
> currentState="";
>
> }
>
> ]]>
>
> </mx:Script>
>
> <mx:Canvas width="100%" height="100%">
>
> <mx:VBox>
>
> <mx:Button label="Add label"
> click="addLabel()"/>
>
> <mx:Button label="Remove label"
> click="removeLabel()"/>
>
> </mx:VBox>
>
> </mx:Canvas>
>
> <mx:states>
>
> <mx:State name="LabelAdded">
>
> <mx:AddChild position="firstChild">
>
> <local:SystemMessage
> id="TheSystemMessage"/>
>
> </mx:AddChild>
>
> </mx:State>
>
> </mx:states>
>
> </mx:Application>
>
>
>
>
>
> รจ Issue: First click on "Add label" Buttonf fails with
> Erorr #1009: Null has no properties. If you dismiss the error
> subsequent clicks work.
>
>
>
> Ralf
>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ:
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
>
>
>
> ________________________________
>
> YAHOO! GROUPS LINKS
>
>
> * Visit your group "flexcoders
> <http://groups.yahoo.com/group/flexcoders> " on the web.
>
> * To unsubscribe from this group, send an email to:
> [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
>
> * Your use of Yahoo! Groups is subject to the
> Yahoo! Terms of Service <http://docs.yahoo.com/info/terms/> .
>
>
> ________________________________
>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
> ------------------------ Yahoo! Groups Sponsor
> --------------------~-->
> AIDS in India: A "lurking bomb." Click and help stop AIDS now.
> http://us.click.yahoo.com/9QUssC/lzNLAA/TtwFAA/nhFolB/TM
> --------------------------------------------------------------
> ------~->
>
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
>
>
>
>
>
>
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Get Bzzzy! (real tools to help you find a job). Welcome to the Sweet Life.
http://us.click.yahoo.com/KIlPFB/vlQLAA/TtwFAA/nhFolB/TM
--------------------------------------------------------------------~->
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/