0

さて、Bullet.asファイルに次のコードがあります。

public var impact:MovieClip;

public function Bullet():void
{
    addEventListener(Event.ADDED_TO_STAGE, whenAdded);
}

function whenAdded(e:Event)
{
    if(this is zArrow){
       power = -1;
       speed = 15;
       impact = arrowImpact;
       trace(impact);
    }
    if(this is Dice){
       power = -Math.round(Math.random()*5 + 1);
       speed = 10;
       impact = diceImpact
    }
}

「publicvarimpact:MovieClip」の値をムービークリップ「arrowImpact」または「diceImpact」として設定しようとしています。私が欲しいのは、弾丸が敵と衝突するたびに、衝撃画像が残り、どの弾丸が衝突するかに応じて、どのような衝撃が表示されるかを変更しようとしています。

この設定を使用して、パワーや速度などの他のすべての変数を変更できますが、「インパクト」ムービークリップ変数がどのインパクトムービークリップであるかを宣言することはできません。

4

1 に答える 1

0

私が今あなたの質問を理解している方法から、あなたはこれらの特定のムービークリップをライブラリから引き出したいと思います。もし私の考え違いでなければ。これを行うには、ライブラリ内の各ムービークリップをMovieClipを拡張するASクラスにペアリングする必要があります。

「Actionscriptのエクスポート」にチェックを入れ、それぞれに必要なクラスを作成してください。次に、Bulletのコードで、それらの新しいインスタンスを作成できます。だからそれを言わせてください:

impact = new ArrowImpact)();

またはクラスに応じてDiceImpact。

これがあなたが望んでいたものの線に沿っていることを願っています。

これらを使用するには、次の行に沿ってgetImpactメソッドを作成することをお勧めします。

public function getImpactMC():MovieClip
{
    return impact;
}

次に、メインドキュメントで行う必要があるのは、このメソッドからの適切な影響をaddChildすることだけです。ただし、impactMCを子としてステージに追加する前に、impactMCのx値とy値を調整して、適切な位置に表示されるようにする必要があることに注意してください。

これがお役に立ててうれしいです!

于 2012-08-18T23:25:55.063 に答える