これはとても奇妙で、この記事では文句を言わない私はハローHIまたはハウディ多分キャッシュの問題で文を始めましょう私の知識が限られているので、とにかく、こんにちは、私は期待して、AS3に非常に非常に新しいですあなたは新しい人でそれを簡単に取ることができます:)。 私はループアニメーションでFlashサイトを構築していると私は、バックグラウンドミュージックとしてMP3の曲を追加しましたが、それはまた、ループやオートプレイに設定されています。問題は、この曲は、アニメーションよりも長いこと、あり、そしてアニメーションがバックフレーム1になったときに、歌はまだ遊んだ1と重なります。私は曲が完全に終了してから再び再生を開始したいです。確かにコードが紛れているかもしれませんが、私が望むものに近づきました。ちょっと磨くためにあなたの助けが必要です。ここmp3ルーピング問題-ActionScript 3の
コードは、これまでで
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest;
//var codes
var AutoPlay:Boolean=true;
var isPlaying:Boolean=false;
var pausePosition:Number=0;
var myMusic:Sound=new Sound();
var soundFile:URLRequest=new URLRequest("Fluke.mp3");
myMusic.load(soundFile);
var channel:SoundChannel;
//if commands
if (AutoPlay==true) {
channel=myMusic.play(pausePosition);
isPlaying=true;
}
//pausebutton functions
pause_btn.addEventListener(MouseEvent.CLICK, pauseSound);
function pauseSound(e:MouseEvent):void
{
if (isPlaying == false) {
channel = myMusic.play(pausePosition);
isPlaying =true;
}else{
pausePosition=channel.position;
channel.stop();
isPlaying=false;
}
}
//playbutton functions
play_btn.addEventListener(MouseEvent.CLICK,playMus ic);
function playMusic(event:MouseEvent):void
{ if (isPlaying== false) {
channel=myMusic.play(pausePosition);
isPlaying=true;
}
}
THIS完全に動作するコードは、曲が完成演奏後のループであろうと私は追加.addEventListenerで、Joshaのおかげです。
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest;
//var codes
var AutoPlay:Boolean=true;
var isPlaying:Boolean;
var pausePosition:Number;
var myMusic:Sound;
var soundFile:URLRequest;
var channel:SoundChannel;
// only create music and register event listeners one time
if (myMusic == null)
{
soundFile = new URLRequest("Fluke.mp3");
myMusic = new Sound();
myMusic.load(soundFile);
pausePosition = 0;
if (AutoPlay)
{
channel = myMusic.play(pausePosition);
isPlaying = true;
}
else
{
isPlaying = false;
}
pause_btn.addEventListener(MouseEvent.CLICK, pauseSound);
play_btn.addEventListener(MouseEvent.CLICK, playMusic);
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
function onPlaybackComplete(event:Event) {
pausePosition = 0;
channel = myMusic.play(pausePosition);
isPlaying = true;
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}
//playbutton functions
function pauseSound(e:MouseEvent):void
{
if (isPlaying == false) {
channel = myMusic.play(pausePosition);
isPlaying =true;
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}else{
pausePosition=channel.position;
channel.stop();
isPlaying=false;
}
}
//playbutton functions
function playMusic(event:MouseEvent):void
{
if (isPlaying== false) {
channel=myMusic.play(pausePosition);
isPlaying=true;
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}
}
男は、私はこれを理解しようとしているナットつもりだった、ありがとうございました。私は私が同じことをやろうとしているように、それはすべてのルーキーをloop.Forなるようにイベントリスナーを追加する必要がありました、完全な作業コード、Joshaのおかげで、私の最初のポストで編集されています。 – 4Geist
あなたの歓迎:)ハッピーコーディング;より多くのactionscriptを追加する場合は、MovieClipを外部のactionscriptファイルにリンクする方法をチェックしたいかもしれません。 – Josha