如何通过外部SWF中的Flex取消/更改功能?(错误#1063)[flex,air,as3]



我从外部网站上获得SWF,例如:

import mx.events.FlexEvent;
private var request:URLRequest = new URLRequest("http://blabla.com/test.swf?user=100004604079959");
private var loader3:Loader = new Loader();
private var loaded:Boolean = false
protected function init(event:Event = null):void
{
    if(!loaded) loadExternal();
}
private function loadExternal():void {
    loaded=true
    loader3.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    loader3.load(request);
    myUIComponent.addChild(loader3);
}

private function onComplete(e:Event):void {
    var mc:MovieClip = MovieClip(e.target.content);
    //mc.removeEventListener(Event.ADDED_TO_STAGE, this.init);
}

但是系统给出此错误的系统:"错误#1063:参数计数test/init()。预期0,获得1。"

因为test.swf具有:

public function test()
    {
        if (stage)
        {
            this.init();
        }
        else
        {
            addEventListener(Event.ADDED_TO_STAGE, this.init);
        }
        return;
    }// end function
    private function init() : void
    {
            //blabla
    }

我无法编辑它,因为我无法访问编辑外部SWF。因此,我必须从Main App(我的意思是加载程序)更改test()函数。

我可以做吗?如果是,如何?

您的问题在这个代码块中:

private function init() : void

事件处理程序没有必需的参数参数。

private function init(event: Event) : void

Stage对于内部和外部类是相同的。不幸的是,在调用addChild()之前,stage未定义为外部类。

最新更新