1

MovieClip を拡張する新しいクラスを実装しました。その名前はbase.MovieClipWithDelays(「ベース」はパッケージ名です)です。

私のシーンには、 という名前のオブジェクトが含まれていますBlahSymbol Properties私はチェックボックスExport for ActionScriptをオンにしExport in first frameました。クラス名を に設定しましT_Idle_0た。そして、それを Base クラスとして指定しましたbase.MovieClipWithDelays

問題は、次のコードが型エラーにつながることです。

var dob:DisplayObject = getChild("Blah");
trace("SuperClass = " + getQualifiedSuperclassName(dob));
return MovieClipWithDelays(dob);

それは出力します:

SuperClass = base::MovieClipWithDelays
TypeError: Error #1034: Type Coercion failed: cannot convert T_Idle_0@1ec59e9 to base.MovieClipWithDelays.

ご覧のとおり、スーパークラス名は問題ありません。それにもかかわらず、それをダウンキャストすることはできません。どうすればそれが可能になり、どうすれば回避できますか?

4

1 に答える 1

-1

ライブラリ MovieClip の基本クラスをカスタム クラスに設定することはできません。Sprite または MovieClip に設定できます。やりたいことを実行するには、次の 2 つの解決策があります。

1. MovieClipWithDelays クラスからすべて (描画など) を管理します。つまり、ライブラリ オブジェクトに依存させないでください。

または:

2. MovieClipWithDelays が MovieClip インスタンスをラップするようにします。

var libraryMC:MovieClip = new SomeLibraryMovieClip();
var customMc:MovieClipWithDelays = new MovieClipWithDelays(libraryMC);

次に 内MovieClipWithDelaysで、ラップされた MovieClip を処理するための関数とプロパティが必要になります。

于 2011-11-01T10:57:43.210 に答える