[英]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.