我想知道我的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中跟踪正确的值。
答案 0 :(得分:3)
根据你的跟踪,pollResize在externalOrInternal之前被调用,你在其中设置了swfParentType,所以通常它首先跟踪null。此外,您的构造函数被严重调用,它应该是Main1时读取Main1,虽然这不会解决您的问题。