开发者

What undocumented alchemy is necessary to get parentApplication to work

开发者 https://www.devze.com 2023-01-25 19:37 出处:网络
I load an SWF with SWFLoader. Within the loaded .SWF, this.parentApplication is returning NULL.Been searching the internet for eight hours.

I load an SWF with SWFLoader. Within the loaded .SWF, this.parentApplication is returning NULL. Been searching the internet for eight hours.

code listing as requested:

<?xml version="1.0"?>
<mx:Application 
  xmlns:mx="http://www.adobe.com/2006/mxml"
  initialize=  "Init();"
  visible="false" 
>

    <mx:Script>
        <![CDATA[

            import flextrace.Dumper;

        private var txt_event:TextEvent = new TextEvent(TextEvent.LINK,false,false,"next.xml");

            private var timer:Timer = new Timer(10000);

            private function Init():void {
              timer.addEventListener(TimerEvent.TIMER,timer_handlr);      
              timer.start(); 
            }

 开发者_如何学Python      private function timer_handlr(event:Event) {

         Dumper.info("timer_handlr");

         if (this.parentApplication == null)
           Dumper.info("null");

         parentApplication.dispatchEvent(new TextEvent(TextEvent.LINK,false,false,"next.xml"));
       }

      ]]>
    </mx:Script>

</mx:Application>


I just was looking through Flex docs and saw an answer on your question, if I understood you correctly:

The parentApplication property of an Application object is never itself; it is either the Application object into which it was loaded, or it is null (for the Application object).

Since, your calling it from the application, it should be null.

Just a quick link for you about accessing nested applications (I haven't tested the solution yet tho, but still, may give you some ideas): Nesting Flex applications - weird issues..

Hope, this would help :)


RYAN GUILL: I tried your suggestion - didn't work. I replaced the dispatchEvent call in the code from the OP with the following: this.dispatchEvent(new TextEvent(TextEvent.LINK,true,false,"next.xml")); Were you saying that this should have triggered the Parent application's event handler for TextEvent.LINK? It didn't work.


Try FlexGlobals.topLevelApplication?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/FlexGlobals.html?filter_flex=4.1&filter_flashplayer=10.1&filter_air=2

0

精彩评论

暂无评论...
验证码 换一张
取 消