什么无证的炼金术是使parentApplication工作所必需的

时间:2010-11-15 20:52:23

标签: flex actionscript-3

我使用SWFLoader加载SWF。在加载的.SWF中,this.parentApplication返回NULL。在互联网上搜索了八个小时。

按要求列出代码:

<?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(); 
            }

       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>

3 个答案:

答案 0 :(得分:1)

如果我理解正确的话,我只是通过Flex文档查看并查看了您的问题的答案:

  

Application对象的parentApplication属性永远不会;它是加载它的Application对象,或它为null(对于Application对象)

因为,从应用程序调用它,它应该为null。

只是一个关于访问嵌套应用程序的快速链接(我还没有测试过解决方案,但仍然可以给你一些想法):Nesting Flex applications - weird issues..

希望,这会有所帮助:)

答案 1 :(得分:0)

RYAN GUILL:我尝试了你的建议 - 没有用。我使用以下代码替换了OP中代码中的dispatchEvent调用:this.dispatchEvent(new TextEvent(TextEvent.LINK,true,false,"next.xml"));你是说这应该触发了Text应用程序的TextEvent.LINK事件处理程序吗?它不起作用。

答案 2 :(得分:-1)