0

私は AS3 を初めて使用するので、少し助けが必要です。

さまざまなオーディオ ファイルを再生し、それらを動的にループする次のコードがあります。

var mIntroLoop = 12495;
var mBattleLoop = 29000;
var currentPlaying;

function playMusic(x):void
{
     musicChannel = x.play();
     currentPlaying = x;
}

function loopSound(m:Object):Function {
  return function(e:Event):void {
         musicChannel = m.play(m.toString() + "Loop");
     musicChannel.addEventListener(Event.SOUND_COMPLETE, loopSound(currentPlaying));
  }
}

playMusic(mIntro);
musicChannel.addEventListener(Event.SOUND_COMPLETE, loopSound(currentPlaying));

コードの上にあるように、2 つの変数mIntroLoopmBattleLoop.

この行について助けが必要です:

musicChannel = m.play(m.toString() + "Loop");

もちろん、これは機能していません。私がやろうとしていることを知っているだけです。

その行には、現在再生しているものに応じて、またはm.play()の戻り値を引数として持つ必要があります。mIntroLoopmBattleLoop

4

1 に答える 1

0

自分で解決したようですが、とにかくこれを見るべきだと思います。

すべてのAS3クラスはクラスを拡張するためObject、次のように実行できます。

musicChannel = m.play( this[m.toString() + "Loop"] );

この方法を使用することはお勧めしませんが、コードに戻ったときに読みにくくなるためです。そうでなければ、それはクリーンな解決策だと思います。

于 2013-01-01T19:42:06.977 に答える