将变量从fla发送到文档类,然后访问它

时间:2011-05-31 07:32:29

标签: flash actionscript-3

我想知道我的swf是在本地加载还是从另一个swf加载。为此我在fla中声明了一个变量'parentType'。 var parentType:String = String(parent); 文档类中有一个函数可以确定swf是在本地加载还是从另一个swf加载。文档类中函数的名称是“externalOrInternal”。可变的parentType作为参数传递给函数externalOrInternal。 externalOrInternal(ParentType的); 文档类的名称是Main。 在Main的构造函数中,我有函数pollResize()(使用这个函数来监听resizing事件。代码的那部分没有显示在下面给出的代码片段中。)

我的fla如下。

var parentType:String = String(parent);
externalOrInternal(parentType);

我的文件分类如下。

package {

    import flash.display.MovieClip;


    public class Main extends MovieClip {

        private var swfParentType:String;

        public function Main1() {

            pollResize();
        }

        public function externalOrInternal(parentType:String) {



            swfParentType=parentType;

            trace("Inside externalOrInternal");
            trace(swfParentType);


        }

        private function pollResize():void {

            trace("Inside pollResize");
            trace(swfParentType);


        }
    }
}

当我跑步时,这就是被追踪的内容

Inside pollResize

null

Inside externalOrInternal

[object Stage]

我看到swfParentType有值insde函数externalOrInternal。我怀疑为什么在函数pollResize中跟踪null。为什么它不是[object Stage]作为externalOrInternal内部。由于这个原因,我无法继续进行舞台调整大小事件。需要做什么才能在函数pollResize中跟踪正确的值。

1 个答案:

答案 0 :(得分:3)

根据你的跟踪,pollResize在externalOrInternal之前被调用,你在其中设置了swfParentType,所以通常它首先跟踪null。此外,您的构造函数被严重调用,它应该是Main1时读取Main1,虽然这不会解决您的问题。