Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 将一个swf加载到另一个swf访问子swf中的函数_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 将一个swf加载到另一个swf访问子swf中的函数

Actionscript 3 将一个swf加载到另一个swf访问子swf中的函数,actionscript-3,flash,Actionscript 3,Flash,我有一个叫draw.fla的a级fla。与draw关联的文档类是draw.as,draw.as中的代码如下 package { import flash.display.MovieClip; import flash.display.Graphics; public class Draw extends MovieClip { public function drawCircle1(color:Number):void { graphics.beginFill

我有一个叫draw.fla的a级fla。与draw关联的文档类是draw.as,draw.as中的代码如下

package
{
import flash.display.MovieClip;
import flash.display.Graphics;

public class Draw extends MovieClip
{
    public  function drawCircle1(color:Number):void
    {
        graphics.beginFill(color);
        graphics.drawCircle(100,100,40);
        graphics.endFill();
    }

}
}
生成的swf称为draw.swf

我有另一个fla名为test.fla

以下是主时间线上第一帧的代码

import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Loader;

var swfLoader = new Loader();
var color:Number;

color = Math.round(Math.random()*0xFFFFFF);
var urlReq:URLRequest = new URLRequest("draw.swf");
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadComplete);
swfLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swfLoadError);
swfLoader.load(urlReq);

function swfLoadComplete(evt:Event):void
{
    var loader:Loader = Loader(evt.target.loader);
    addChild(loader.content);
    swfLoader.removeEventListener(Event.COMPLETE, swfLoadComplete);
}

function swfLoadError(evt:IOErrorEvent):void
{
  trace("Unable to load swf ");
  swfLoader.removeEventListener(IOErrorEvent.IO_ERROR, swfLoadError);
}

如您所见,我已将dwaw.swf加载到test.swf中。我是否可以从test.fla访问Draw的drawCircle1功能。实际上,在访问此函数时,我需要将值color作为参数传递。

Loader.content应该是该类,并且可以使用方括号语法按名称调用函数:

function swfLoadComplete(evt:Event):void
{
    var loader:Loader = Loader(evt.target.loader);
    addChild(loader.content);

    //trying to call function drawCircle1
    loader.content["drawCircle1"](0xFF0000);

    swfLoader.removeEventListener(Event.COMPLETE, swfLoadComplete);
}

Loader.content应该是该类,并且可以使用方括号语法按名称调用函数:

function swfLoadComplete(evt:Event):void
{
    var loader:Loader = Loader(evt.target.loader);
    addChild(loader.content);

    //trying to call function drawCircle1
    loader.content["drawCircle1"](0xFF0000);

    swfLoader.removeEventListener(Event.COMPLETE, swfLoadComplete);
}

如果我没有错的话,一旦加载程序完成,您就可以简单地制作MovieClip(loader.content).drawCircle1(0xFF0000)

如果我没记错的话,一旦加载程序完成,您就可以简单地制作MovieClip(loader.content).drawCircle1(0xFF0000)