2012-10-21 53 views
-2

我試圖從組件資源中使用組合框插入音樂。昨天工作正常,但今天突然它停止工作,它給了我這個錯誤:ActionScript 3閃存錯誤1009和2025組合框

TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。

ArgumentError:錯誤#2025:提供的DisplayObject必須是調用者的子項。

每當我點擊組合框時出現這些錯誤,奇怪的是它昨天工作正常。 這是第一幀的代碼:

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

//Declare MUSIC Variables 
var musicSelection:Sound; 
var musicChannel:SoundChannel; 
var musicTrack:String = "music/dearly_beloved.mp3"; 
var musicVolume:Number=0.2; 
/*var isMuted = false;*/ 


loadMusic(); 
function loadMusic():void 
{ 
//first stop old sound playing 
    SoundMixer.stopAll(); 
    musicSelection = new Sound(); 
    musicChannel = new SoundChannel(); 
//create and load the required soun 
musicSelection.load(new URLRequest(musicTrack)); 
     //when loaded - play it 
     musicSelection.addEventListener(Event.COMPLETE, musicLoaded); 
    } 

     function musicLoaded(evt:Event):void 
    { 
     //finished with this listener 
     musicSelection.removeEventListener(Event.COMPLETE, musicLoaded); 
     //play music 
     playMusic(); 
     } 

     function playMusic():void 
    { 
    //play the random or selected music 
    musicChannel = musicSelection.play(); 
    //setting the volume control property to the music channel 
    musicChannel.soundTransform = new SoundTransform(musicVolume, 0); 
    //but add this one to make repeats 
     musicChannel.addEventListener(Event.SOUND_COMPLETE, playAgain); 
    } 
    function playAgain(evt:Event):void { 
    // remove this listener and repeat 
    musicChannel.removeEventListener(Event.SOUND_COMPLETE, playAgain); 
    playMusic(); 
    } 

並且這對於所述第二幀的代碼:

import flash.events.Event; 
menuBtn.addEventListener(MouseEvent.CLICK, goToMenu) 
function goToMenu(evt:Event):void 
{ 
gotoAndPlay(2); 
} 
// BUTTON EVENT LISTENERS 
musicCombo.addEventListener(Event.CHANGE, updateMusic); 
volumeSL.addEventListener(Event.CHANGE, setSlider); 

//process COMBO BOX changes 
function updateMusic(evt:Event):void 
{ 
if (musicCombo.selectedItem.data == "none") 
{ 
    //no music is required so stop sound playing 
    SoundMixer.stopAll(); 
} 
else 
{ 
    //otherwise load in the selected music 
    musicTrack = "music/" + musicCombo.selectedItem.data; 
    loadMusic(); 
} 
    } 

    function setSlider(evt:Event):void 
    { 
//identify the button clicked 
var mySlider:Object = (evt.target); 
//adjusting to volume of the music channel 
musicVolume = mySlider.value; 
musicChannel.soundTransform = new SoundTransform(musicVolume, 0); 
    } 

每當我點擊了組合框發生錯誤,當我試圖插入另一個組合框沒有放置任何數據,同樣的錯誤發生。希望你們能幫助我儘快原因這是由於在本週五的xD

感謝

回答

0

好了,找到了答案。看來我需要把這3行代碼:

import fl.events.ComponentEvent; 
import fl.controls.ComboBox; 
import fl.data.DataProvider;