MovieClip 派生クラスが gotoAndStop を実行しないのはなぜですか?
-
18-09-2019 - |
質問
事実:
- 私には2つのクラスがあります:エンティティと船。Entity は MovieClip を拡張し、Ship は Entity を拡張します。
- Ship.as クラス ファイルに関連付けられた MovieClip があります。
重要なのは、Ship オブジェクトを表示、回転、移動できることです。ただし、タイムライン内の希望の場所にポインターを変更することはできません。要するに:gotoAndStop(n) からの応答が成功しません。それはうまくいきません。
前もって感謝します。
私はすでに試しました:
- クラス ファイルの内外でムービークリップをキャストします。
- flash.utils.* のインポート
- パラメーターを数値から文字列に変更します (フレーム ラベルの場合)。
私にとってうまくいった唯一の方法は、Entity からではなく MovieClip から直接 Ship を派生させることです。しかし、それは望ましくない最後の手段です。
ソース ファイルはここからダウンロードできます。 http://cid-7b6cf3fa8e7f0691.skydrive.live.com/self.aspx/ActionScript%20Exercises/Asteroids.zip
解決
``「選択」壊れていない
OSやコンパイラ、あるいはサードパーティの製品またはライブラリのバグを見つけることは稀です。バグがアプリケーションの中で最も可能性があります。
-The実用プログラマ
Ship.asにおける非コメント行93-101
Ship.asにライン121をコメントアウト
他のヒント
追加してみてください
輸入flash.utils *;ます。
HTH
あなたは、文字列、または文字列から数値に数からgotoAndStop()
の引数を変更してみてください可能性があります。 (どのフレームラベルを追加する必要があります。)私は前にこれで少し問題がありました。
それは奇妙です。私は、ムービークリップとして船をキャストしようとするだろう -
MovieClip(myShipVar).gotoAndStop(1)
私は、MovieClipの方法は、単にムービークリップの延長の延長だ何かに動作しないこれらの線に沿って奇妙な行動を、経験した - しかし、私はなぜあなたを伝えることができませんでした。あなたはそれが動作できるようにする必要があり、そのメソッド呼び出しのムービークリップとしてそれをキャストした場合 - 私はこれについての詳細を知っている誰もが応答するかどうかを確認するために、このスレッドに目を維持するつもりです。
。私が困ったときに私ができる代わりに、組成物を用いるほとんど常に前に延びてを持っていました。 私はこの問題をこのように解決します:
これにあなたのライブラリにある船のムービークリップのリンケージIDを変更します。 クラス:shipAsset ベースクラス:flash.display.MovieClipと
ship.asでは、プロパティpublic var「資産」を作成し、それの新しいインスタンスを作成し、このような船インスタンスの表示リストに追加します。 資産=新しいshipAsset(); addChild(アセット);
Main.asでは、そのようにタイムラインを制御します。 ship.asset.gotoAndStop( 'ブースト');
助け希望!