A primary benefit of doing things like this is that you have the entire item data in the component dispatching the event, and you have access to that data in any handler via the event.target reference.
So you only need the event, and no other arguments. Tracy ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Tracy Spratt Sent: Thursday, September 25, 2008 8:02 PM To: [email protected] Subject: RE: [flexcoders] help w/ setting click events on dynamically created linkbuttons I advise using repeater with a custom clickable component. Tracy Goal: Display a list of items using a complex display for each item, and have each of those items behave like a menu element and respond to a click anywhere on the item by running a handler function. One solution is to use a Repeater with a custom component In the main app or component, declare the Repeater, and the click handler function. <mx:Application ... <mx:Script><![CDATA[ import MyRepeaterItem; ... private function onRPItemClick(oEvent:Event):void { var xmlItem:XML = XML(oEvent.target); }//onRPItemClick ]]></mx:Script> <mx:VBox ...> <mx:Repeater id="rp" dataProvider="{_xmlData}" ...> <!-- Note we pass in the entire currentItem, and define a click handler --> <MyRepeaterItem xmlItem="{rp.currentItem}" itemClick="onRPItemClick(event)" .../> </mx:Repeater </mx:VBox> </mx:Application> And in the component, MyRepeaterItem.mxml: <?xml version="1.0" encoding="utf-8"?> <mx:HBox mouseChildren="false" buttonMode="true" click="onClick(event)" > <!-- The metadata tag below allows us to define an itemClick handler in mxml, as in the code above --> <mx:Metadata> [Event(name="itemClick", type="flash.events.Event")] </mx:Metadata> <mx:Script><![CDATA[ [Bindable]private var _xmlItem:XML; /** Setter function */ public function set xmlItem(xml:XML):void { _xmlItem = xml; //do any special, non-bound ui stuff you want }//set xmlItem /** Getter function */ public function get xmlItem():XML { return _xmlItem; }//get xmlItem /** Outer VBox Click handler function */ private function onClick():void { dispatchEvent(new Event("itemClick",false); //we do not need/want this event to bubble }//onClick ]]></mx:Script> <!-- Now declare the Item UI --> <mx:Text id="lbDescription" text="[EMAIL PROTECTED]" width="100%" height="100%" /> </mx:HBox> ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Ramsey, Robert L Sent: Thursday, September 25, 2008 10:34 AM To: [email protected] Subject: [flexcoders] help w/ setting click events on dynamically created linkbuttons Hi, I am working on a scheduling application and need some help working with dynamically created clickable objects. I've been using linkbuttons, but anything that is clickable will work. I have an array that may contain 0-N items, where N can be any number. If N>0, I need to create clickable linkbuttons that call a function. What I'm doing is something like this: for each (var conflict:String in conflictArray) { var myLabel:LinkButton = new LinkButton; myLabel.label = conflict; myLabel.y = myy; myy += 20; Application.application.conflictsPanel.addChild(myLabel); } What I need to do is have each linkbutton call a function when it is clicked and pass two variables to that function. What I'd like to be able to do is something like this: myLabel.onClick(myFunction(label, label.length); Is there an easy way to do this or a different clickable control I should be using? Thanks, Bob

