0

私はアクションスクリプトとフラッシュが初めてで、オンラインラジオプレーヤーを作成しています。ここで私は単純な問題に直面しています。画像にカーソルを合わせたときの再生ボタンか停止ボタンか、ボタン画像を変更したいです。各ボタンのシンボルを作成し、インスタンス名を作成しました。i には、最初の再生ボタンと次の再生ボタン、停止ボタンと途中降機ボタンがそれぞれ配置されています。私はこれをすべて1つのレイヤーで行いました。ここに私のホバーアクションスクリプト

import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.events.Event;

/****stop-control:***/

btnstop.addEventListener(MouseEvent.MOUSE_OUT,StopOut);
btnstopo.addEventListener(MouseEvent.MOUSE_OVER,StopOver);
function StopOver(evt:MouseEvent):void
{
    btnstopo.visible=false;
    btnstop.visible=true;
}

function StopOut(evt:MouseEvent):void
{
    btnstop.visible=false;
    btnstopo.visible=true;
}

/*****Play control:****/

playbtn.addEventListener(MouseEvent.MOUSE_OUT,PlayOut);
btnplayo.addEventListener(MouseEvent.MOUSE_OVER,PlayOver);

function PlayOver(evt:MouseEvent):void
{
    btnplayo.visible=false;
    playbtn.visible=true;
}

function PlayOut(evt:MouseEvent):void
{
    playbtn.visible=false;
    btnplayo.visible=true;
} 

var soundfile:URLRequest = new URLRequest('http://live32.radio.com:80/;stream1.mp3');
var channel:SoundChannel = new SoundChannel();
var sTransform:SoundTransform = new SoundTransform();

 var isplay=1;
 var myMusic:Sound = new Sound();  
 myMusic.load(soundfile);
 channel=myMusic.play(); 

playbtn.addEventListener(MouseEvent.CLICK,PlayRadio);
btnstop.addEventListener(MouseEvent.CLICK,StopRadio);

function PlayRadio(evt:Event):void
{
    if(isplay==0)
    {
        isplay=1;
        /*var myMusic:Sound = new Sound();  
        myMusic.load(soundfile);
        channel=myMusic.play(); */
        SoundMixer.soundTransform = new SoundTransform(1);
        btnstop.visible=true;
        playbtn.visible=false;
    }
}

function StopRadio(evt:Event):void
{
    if(isplay==1)
    {
        SoundMixer.soundTransform = new SoundTransform(0);
        isplay=0;
        btnstop.visible=false;
        playbtn.visible=true;
    }
}

ここで私の問題は、停止ボタンを押したときに正常に機能していることです。しかし、停止後、再生ボタンを表示する必要があります。しかし、私のコードによれば、停止後に停止ボタンが再び表示されます。停止ボタンを表示する理由はわかっています。MOUSE_OUT がその理由です。どうすれば修正できるかわかりません。誰でもクリアしてください、よろしくお願いします

4

1 に答える 1

0

私は自分で答えを見つけました。removeEventlistner停止ボタンまたは再生ボタンをクリックすると見逃してしまいました。ここで停止ボタンをクリックすると、停止 EventLIstner が削除され、Play EventLIstner が追加されます。再生ボタンの反対のように、サンプルコードはこちら

function PlayRadio(evt:Event):void
{
    if(isplay==0)
    {
        isplay=1;
        /*var myMusic:Sound = new Sound();  
        myMusic.load(soundfile);
        channel=myMusic.play(); */
        btnplay.removeEventListener(MouseEvent.MOUSE_OUT,PlayOut);
        btnplayo.removeEventListener(MouseEvent.MOUSE_OVER,PlayOver);
        btnstop.addEventListener(MouseEvent.MOUSE_OUT,StopOut);
        btnstopo.addEventListener(MouseEvent.MOUSE_OVER,StopOver);
        SoundMixer.soundTransform = new SoundTransform(1);
        btnstop.visible=true;
        btnplay.visible=false;
    }
}

function StopRadio(evt:Event):void
{
    if(isplay==1)
    {
        btnstop.removeEventListener(MouseEvent.MOUSE_OUT,StopOut);
        btnstopo.removeEventListener(MouseEvent.MOUSE_OVER,StopOver);
        btnplay.addEventListener(MouseEvent.MOUSE_OUT,PlayOut);
        btnplayo.addEventListener(MouseEvent.MOUSE_OVER,PlayOver);
        SoundMixer.soundTransform = new SoundTransform(0);
        isplay=0;
        btnstop.visible=false;
        btnplay.visible=true;
    }
于 2013-07-26T06:33:25.293 に答える