控制另一个帧 AS3 的实例



我是 AS3 的新手,我正在尝试从另一个帧访问一个帧的实例。这是我的代码。

package  {
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.display.Stage;
    import flash.text.TextField;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLVariables;

    public class Main extends MovieClip {
        var fl_TextLoader:URLLoader = new URLLoader();
        var fl_TextURLRequest:URLRequest = new URLRequest("questions.xml");
        var arrquestions:Array = new Array();//create new array

        public function Main() //main class call all the actions here
        {
            fl_TextLoader.addEventListener(Event.COMPLETE, fl_CompleteHandler);
            fl_TextLoader.load(fl_TextURLRequest);
            init();
        }

我在这一部分遇到错误,TypeError: Error #1009: Cannot access a property or method of a null object reference.我认为这是因为它不在同一帧上。

        private function init():void 
        {
            btn1d.addEventListener(MouseEvent.CLICK,play1d);
            btn2d.addEventListener(MouseEvent.CLICK,play2d); 
        }

        function fl_CompleteHandler(event:Event):void
        {
            var xmlData:XML = new XML(fl_TextLoader.data);
            //pass xml data to array variable
            arrquestions[0]=xmlData.q1;
            arrquestions[1]=xmlData.q2;
            arrquestions[2]=xmlData.q3;
            //load first question here
            q1.text = arrquestions[0];
        }

        function play1d(event:MouseEvent):void
        { 
            gotoAndStop ("questions2") 
            q2.text = arrquestions[1];
        }

        function play2d(event:MouseEvent):void
        { 
            gotoAndStop ("questions3") 
            q3.text = arrquestions[2];
        }
    }
}

正如马蒂所说,这是不可能的。我建议您尽快摆脱时间线中的编码。使用外部类是一种更灵活的工作方式。它不必太复杂;将Flash文件链接到外部文件,它与时间线中的编码非常相似 - 除了您可以引用不一定在舞台上的对象。

最新更新