You have to put a change tag above the property in question.  Check in the documentation for ChangeEvent:
 
[ChangeEvent("change")]
public var flavorStr:String;
----- Original Message -----
From: Rob Rusher
Sent: Thursday, November 03, 2005 11:47 AM
Subject: [flexcoders] How do you pass bindings into a custom component?

I have an AS class that extends UIComponent. I can easily pass a value into the component if it is a string, but if the property is bound to something it does not come through.

 

I’ve tried setting events to detect the change with no luck. Most likely an error on my part.

 

Anyone have ideas on how to do this?

 

Main.mxml

==============================================

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" xmlns="*">

<mx:TextInput id="myText" text="Click Me"/>

<MyComponent id="myPanel" buttonText="{ myText.text }"/>

</mx:Application>

 

 

MyComponent.as

==============================================

// Import all necessary classes.

import mx.core.*;

import mx.controls.*;

 

class MyComponent extends UIComponent

{

            // Declare events

            [Event("click")]

 

            // Declare input property.

            public var buttonText:String;

 

            // Declare two children member variables.

            public var text_mc:TextArea;

            public var button_mc:Button;

 

            function createChildren():Void

            {

                        if ( button_mc == undefined )

                                    createClassObject( Button, "button_mc", 1, { } );

                        if ( text_mc == undefined )

                                    createClassObject( TextArea, "text_mc", 0, { preferredWidth: 150, editable: false } );

                        button_mc.addEventListener( "click", this );

 

                        // assign input property to button’s label

                        button_mc.label = buttonText;

            }

 

            function layoutChildren()

            {

                        button_mc.move( text_mc.width / 2 - 5, 50 );

            }

 

            // Handle events that are dispatched by the children.

            function handleEvent( eventObj:Object ):Void

            {

                        if ( eventObj.type == "click" )

                                    text_mc.text = "You clicked the button";

            }

 

}

 

Regards,

 

Rob Rusher

 

RIA Consultant

Macromedia Certified Flex Instructor

e:[EMAIL PROTECTED] c:303.885.7044 im:robrusher

 



--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex


YAHOO! GROUPS LINKS




Reply via email to