簡體   English   中英

在AS3類文件的舞台上我無法控制MovieClip

[英]I can't control MovieClip in the stage from AS3 class file

我在fla文件中創建了一個符號(MovieClip),並將其添加到框架中。 然后在屬性面板上為其指定實例名稱:“ myMC”

然后嘗試從目錄:root \\ Test \\ MyClass.as中的類文件控制它

package Test {
    import flash.display.MovieClip;

    public class MyClass extends MovieClip{
        public function MyClass() {
            var myMC:MovieClip = getChildByName("myMC") as MovieClip;
            myMC.gotoAndStop(2);
        }
    }
}

之后,將類導入fla並嘗試運行:

import Test.MyClass;
var LaunchMyClass:MyClass = new MyClass();

並得到這個錯誤,

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at Test::MyClass()
at Test_fla::MainTimeline/frame1()

請注意,我正在嘗試在舞台中控制MovieClip,而不是從庫中調用它。

首先,請始終發布您在問題中遇到的錯誤消息。 使事情變得容易。

現在讓我們來看一下您的腳本:

我在fla文件中創建了一個符號(MovieClip),並將其添加到框架中。 然后我使用addChild(myMC);將其添加為孩子addChild(myMC);

如果您將其放在舞台上並為MovieClip指定實例名稱,則無需調用addChild。

在as3中,以大寫字母開頭的類名很方便,因此可以將其命名為MyClass而不是myClass。

您的包缺少構造函數,該函數的名稱必須與類名和.as文件名相同。

getChildByName()方法需要一個字符串,因此您必須將myMc用引號引起來

package  {
    import flash.display.MovieClip;


    public class MyClass extends MovieClip {

        // Constructor
        public function MyClass() {
            // constructor code
            var myMC:MovieClip = getChildByName("myMC") as MovieClip;
            myMC.gotoAndStop(2);
        }
        // End Constructor
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM