Actionscript 3 Flash AS3加载电影错误#1009-外部AS文件

Actionscript 3 Flash AS3加载电影错误#1009-外部AS文件,actionscript-3,flash,Actionscript 3,Flash,我们在Flash中创建了一个使用外部actionscript文件的程序 我试图在另一个flash文件中加载/导入此swf,但遇到“错误#1009:无法访问空对象引用的属性或方法” 我知道这是我的external.as文件中的引用,但我不确定如何修复它 这是我加载(和缩放)swf的代码 有人有什么想法吗 谢谢 Edit:以下是完整的错误代码:TypeError:error#1009:无法访问null对象引用的属性或方法。在塔顿() 下面是我的.as文件代码: package { impor

我们在Flash中创建了一个使用外部actionscript文件的程序

我试图在另一个flash文件中加载/导入此swf,但遇到“错误#1009:无法访问空对象引用的属性或方法”

我知道这是我的external.as文件中的引用,但我不确定如何修复它

这是我加载(和缩放)swf的代码

有人有什么想法吗

谢谢

Edit:以下是完整的错误代码:TypeError:error#1009:无法访问null对象引用的属性或方法。在塔顿()

下面是我的.as文件代码:

package
{
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.utils.setTimeout;
    import flash.utils.clearTimeout;
    import flash.utils.getDefinitionByName;

    public class Tatton extends MovieClip
    {
        public var active_clip:MovieClip;
        public var to:Number;

        public function Tatton()
        {
            // Create empty vector of movieclips;
            stage.addEventListener(MouseEvent.CLICK, reset_timeout);
            init();
        }

        public function reset_timeout(e:Event = null)
        {
            clearTimeout(to);
            // 3 mins
            to = setTimeout(fire_timeout, 150 * 1000);
        }

        public function fire_timeout():void
        {   
            // Reset the system (and run attractor) if we're not on the attractor already.
            if ( !(active_clip is Attractor))
            {
                init();
            }
        }

        public function init()
        {
            // Reset globals
            Globals.skip_menu_anim = false;
            Globals.skip_staff_menu = false;

            load_movie("Attractor");
            reset_timeout();
        }

        public function load_movie(name:String):void
        {
            if (active_clip is MovieClip)
            {
                kill_active_movie();
            }

            active_clip = createInstance(name);
            addChild(active_clip);
            active_clip.startup();
        }

        public function kill_active_movie():void
        {
            active_clip.shutdown();
            removeChild(active_clip);
            active_clip = null;

        }
        public function createInstance(className:String):Object
        {
            var myClass:Class = getDefinitionByName(className) as Class;
            var instance:Object = new myClass();
            return instance;
        }
    }

}

您需要在调用Loader.load后添加事件侦听器,因为在调用load之前contentLoaderInfo为null。

尝试此操作

public function Tatton() {

    addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
}

private function stageAvailable(e:Event = null) {

    removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);

    // Create empty vector of movieclips;
    stage.addEventListener(MouseEvent.CLICK, reset_timeout);
    init();
}

请参阅本文以了解为什么您不应该在上面的代码中查找错误。尝试跟踪对象以在filename.swf代码中找到空值。为了方便起见,编译器可能还会给您一个行号。我的猜测是,您需要在filename中侦听添加的_to_STAGE事件。swfI已更新问题,以包含完整的错误消息和.as文件-如果可以,您将是一名救生员help@alib0ng0编辑原始帖子中的代码以显示此更改
public function Tatton() {

    addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
}

private function stageAvailable(e:Event = null) {

    removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);

    // Create empty vector of movieclips;
    stage.addEventListener(MouseEvent.CLICK, reset_timeout);
    init();
}