AS3无法为子swf分配变量

时间:2013-04-28 06:14:35

标签: actionscript-3

我有2个SWF。一个Parent.swf和另一个是child.swf。

在父SWF中的

我正在加载子swf。

我正在使用加载程序来加载swf。我的代码如下:

----------------------------------------
    stop();
var req:URLRequest = new URLRequest("stalla.swf");

var _loader = new Loader();
var stallaloader1:MovieClip=new MovieClip();
addChild(stallaloader1);

  Object(this).stallaloader1.x=5000;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
_loader.load( req ); 
stallaloader1.addChild(_loader);
trace(stallaloader1.x);
//_loader.vipin="Ashwini n Meha";
function loader_complete(evt:Event):void {
//addChild(_loader);
var _loader:MovieClip = MovieClip(evt.target.content);
    //addChild(_loader); //embedSWF
    //stallaloader1.stallclick;
    //_loader.stallclick;

    //evt.currentTarget.x=1000;

    // btn2.addEventListener(MouseEvent.CLICK,_loader.stallclick);
     btn2.addEventListener(MouseEvent.CLICK, function() {videovariables(2)});

}
function videovariables(vid):void {
trace(_loader.vipin);
    _loader.vipin="Overwrite with Ashwini"
     trace(_loader.vipin);
 }

如果在loader_complete中调用,那么这3行效果很好,但是

如果我们将它们放在videovariables函数中,我们会收到错误:

ReferenceError:错误#1069:在flash.display.Loader上找不到属性vipin,并且没有默认值。     at _3dstalls_fla :: Symbol1_1 / videovariables()[_ 3dstalls_fla.Symbol1_1 :: frame1:53]     在Function /()[_ 3dstalls_fla.Symbol1_1 :: frame1:49]

可能是什么原因?请告诉我。

谢谢

1 个答案:

答案 0 :(得分:1)

如果您查看错误消息,则说明: flash.display.Loader 上找不到Property vipin 意思是_loader指的是Loader实例,而不是MovieClip。

由于您想要的MovieClip已加载到加载程序(_loader)中,因此您可以使用Loader类的content属性访问它。

function videovariables(vid):void {
     trace(_loader.content.vipin);
    _loader.content.vipin="Overwrite with Ashwini"
}