鼠标悬停时如何播放歌曲?

时间:2013-06-09 20:16:43

标签: actionscript-3 flash

我是ActionScript的新手,所以我坚持下去。我需要的是:当鼠标悬停在我的图像上时播放一首歌。我试图这样做,但我得到了错误:

Scene 1, Layer 'actions', Frame 1, Line 45  1120: Access of undefined property soundChannel.
Scene 1, Layer 'actions', Frame 1, Line 46  1120: Access of undefined property soundChannel.
Scene 1, Layer 'actions', Frame 1, Line 74  1120: Access of undefined property des_elefante.

到目前为止,这是我的代码:

import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest; 
import flash.media.SoundChannel; 
import flash.net.URLLoader;
import flash.events.*;
import flash.display.MovieClip;

var dragArray:Array = [letraE, letraA,letraI,letraO,letraU];
var matchArray:Array = [letraEmatch,letraAmatch,letraImatch,letraOmatch,letraUmatch];

var currentClip:MovieClip;
var startX:Number;
var startY:Number;
matchArray[0].alpha = 0.2;
matchArray[1].alpha = 0;
matchArray[2].alpha = 0;
matchArray[3].alpha = 0;
matchArray[4].alpha = 0;



for(var i:int = 0; i < dragArray.length; i++) {
    dragArray[i].buttonMode = true;
    dragArray[i].addEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);

}





function item_onMouseDown(event:MouseEvent):void {
    currentClip = MovieClip(event.currentTarget);
    startX = currentClip.x;
    startY = currentClip.y;
    addChild(currentClip); //leva o clip pra frente
    currentClip.startDrag();
    stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp, MouseEvent.MOUSE_OVER);
}
function fl_play_sound(event:MouseEvent):void{

    var sound = new Sound();  
    sound.load(new URLRequest("audio_elefante.wav"));
    soundChannel = new SoundChannel();
    soundChannel = sound.play();

}
function stage_onMouseUp(event:MouseEvent):void {
    stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
    currentClip.stopDrag();
    var index:int = dragArray.indexOf(currentClip);
    var matchClip:MovieClip = MovieClip(matchArray[index]);
    if(currentClip.hitTestObject(matchClip)) {
        //se a combinação é a certa, ele posiciona a o clip da letra no clip do tracinho
        currentClip.x = matchClip.x;
        currentClip.y = matchClip.y;
        //Desabilita pra arrastar já que é o certo
        currentClip.removeEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
        currentClip.buttonMode = false;
    } else {
        //se a combinação não é a certa, leva o clip da letra de volta pra posição inicial;
        currentClip.x = startX;
        currentClip.y = startY;
    }
}


letraA.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
letraI.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
letraO.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
letraU.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
letraE.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
des_elefante.addEventListener(MouseEvent.MOUSE_OVER, fl_play_sound);

function fl_MouseOverHandler(event:MouseEvent):void
{
    // Start your custom code
    // This example code displays the words "Moused over" in the Output panel.
    //trace("Moused over");
    // End your custom code
}

我将图像转换为按钮,动画片段和图形,但最后一个错误没有任何改变。谢谢

1 个答案:

答案 0 :(得分:0)

您需要使用var关键字声明您的soundChannel变量。尝试在导入语句后将其添加到文件顶部附近。

var soundChannel:SoundChannel;