But you can dispatch an event from Application and listen for it in a
component.  Code in the component:

Application.application.addEventListener("EventDispatchecInMainapp",
listenerInThisComponent);

 

Tracy

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Scott Melby
Sent: Tuesday, September 30, 2008 8:03 PM
To: [email protected]
Subject: Re: [flexcoders] how do I send a custom event from an
application to a component?

 

Rather than sending an event to a component, what you do is declare a
public function in your component, then call it from the application.

so... in myComp

public function someFunction(var param1:type):void
{
    //do stuff
}

and out in your main code you need to give your myComp an id...
id="myComp".  Then in your button click handler call
myComp.someFunction(blah);

hth
Scott

luvfotography wrote: 

        Hi, I'm able to send a custom event from a component to an
        application, but how do I send a custom event from the
application to
        a component?
        
        example code:
        mycomp.mxml:
        
        <?xml version="1.0" encoding="utf- 8"?>
        <!--this is myapp.mxml-- >
        <mx:Application xmlns:mx="http://www.adobe. com/2006/ mxml
<http://www.adobe.com/2006/mxml> "
        layout="absolute"
        xmlns:comp=" *" xmlns:events= "flash.events. *"
creationComplete= "init()">
        <mx:Metadata>
        [Event(name= "appEvent" , type="flash. events.Event" )] 
        </mx:Metadata>
        <mx:Script>
        <![CDATA[
        import mx.controls. Alert;
        
        private function init():void {
        addEventListener( "compEvent" ,compEventHandle r);
        }
        
        private function compEventHandler( e:Event): void {
        Alert.show(" event received from component");
        }
        
        private function sendEvent(e: Event):void {
        var myappEvent:Event = new Event("appEvent" , true,true);
        dispatchEvent( myappEvent) ;
        }
        ]]>
        </mx:Script>
        <comp:mycomp />
        <mx:Button label="send event to component" id="appbutton"
        click="sendEvent( event)" />
        </mx:Application>
        
        component:
        <?xml version="1.0" encoding="utf- 8"?>
        <!--this is mycomp.mxml- ->
        <mx:Canvas xmlns:mx="http://www.adobe. com/2006/ mxml
<http://www.adobe.com/2006/mxml> " width="400"
        height="300" creationComplete= "compInit( )">
        
        <mx:Metadata>
        [Event(name= "compEvent" , type="flash. events.Event" )] 
        </mx:Metadata>
        
        <mx:Script >
        <![CDATA[
        import mx.controls. Alert;
        private function compInit():void {
        addEventListener( "appEvent" ,appEventHandler );
        }
        private function appEventHandler( e:Event): void {
        Alert.show(" event received from application" );
        }
        private function sendEvent(e: Event):void {
        var mycompEvent: Event = new Event("compEvent" , true,true);
        dispatchEvent( mycompEvent) ;
        }
        ]]>
        </mx:Script>
        <mx:Button id="mybutton" x="200" label="send event to
application"
        click="sendEvent( event)" />
        </mx:Canvas>
        
        thanks!

 

 

Reply via email to