AS3でリンケージクラスを使うときはpublicにしないと使えない
※超当たり前のことなのでスルーしてください。
AS3でmcをリンケージするとき、方法としては2つあって、(1)アニメーションなどを設定したmcをスクリプトで呼び出す場合、(2)MovieClipを継承したクラスを設定して、それをライブラリのmcシンボルに当ててスクリプトで呼び出す場合、です。
(1)アニメーションなどを設定したmcをスクリプトで呼び出す場合
・ライブラリのmcシンボルを右クリックして「Actionscriptに書き出し」にチェックします。
・「クラス」の設定部分で適当な名前をつけます(ここではTestMC1)。
・スクリプトで「var m:MovieClip = new TestMC1();addChild(m)」などと書きます。
(2)アニメーションなどを設定したmcをスクリプトで呼び出す場合
・ライブラリのmcシンボルを右クリックして「Actionscriptに書き出し」にチェックします。
・「クラス」の設定部分でクラスの名前をつけます(ここではTestClass1)。
・リンケージしたいクラスをpublic Classにします。
・スクリプトで「var m:MovieClip = new TestClass1();addChild(m)」などと書きます。
クラスの例:
package{ import flash.display.MovieClip public class TestClass1 extends MovieClip{ function TestClass1(){} } }
public class にしないと 1180 エラー(未定義である可能性が高いメソッド TestClass1 の呼び出しです)が出てしまいます。コンストラクタは public function にしなくてもOK。
しかし、リンケージクラスがメソッドを使いたいときは、public function にしないといけません。しないと 1069 エラー(TestClass1 にプロパティ testFunc が見つからず、デフォルト値もありません)が出ます。