2013-06-09 2 views
0

Я новичок в ActionScript, поэтому я застрял на нем. Мне нужно: играть песню, когда мышь над моим изображением. Я пытался это сделать, но я получаю erros:Как играть в песню при наведении курсора мыши?

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 
} 

я преобразовал мое изображение на кнопку, мувиклип и графики, но ничего не изменилось в последний ошибка. Спасибо

+0

Не забывайте про последнюю ошибку, просто исправив ее! Я просто забыл дать клипу имя экземпляра – migmig

ответ

0

Вам необходимо объявить переменную soundChannel с ключевым словом var. Попытайтесь добавить это в верхней части своего файла после своих операторов импорта.

var soundChannel:SoundChannel; 
Смежные вопросы