2011-09-23 128 views
0

我有一個AS3函數加載和音頻文件,然後播放它。我有第一個音頻文件工作的預加載器 - 現在我需要在第二個音頻文件啓動之前運行預加載功能。Actionscript 3 - 從另一個函數內部調用onLoadProgress函數

myMusic.addEventListener(ProgressEvent.PROGRESS, onLoadProgress2, false,0, true); 
    myMusic.addEventListener(Event.COMPLETE, playMusicNow, false, 0,true); 
myMusic.load(soundFile, myContext); //This code works 

這裏是劇中代碼:

//此代碼不能正常工作

function receiveText1(value:String):void { 

     channel.stop(); 
     channel2.stop(); 
     songPosition = 0; 
     soundFile2 = new URLRequest(jsVariableValue1); 
     myMusic2= new Sound(); //Intstantation 
     myMusic2.load(soundFile2, myContext); 
      //need to run preloader here 
     soundFile2exist = null; 
     } 

這是我的事件偵聽器和預加載:

myMusic2.addEventListener(ProgressEvent.PROGRESS, onLoadProgress, false,0, true); 
    myMusic2.addEventListener(Event.COMPLETE, playMusicNow, false, 0,true); 

function onLoadProgress(evt:ProgressEvent):void { 
    progBar.alpha = .70; 
    prcLoaded.alpha = .70; 
    var pcent:Number=evt.bytesLoaded/evt.bytesTotal*100; 
    prcLoaded.text =int(pcent)+"%"; 
    progBar.width = 90 * (evt.bytesLoaded/evt.bytesTotal); 
} 

我想我可致電

onLoadProgress(evt:ProgressEvent); 

從函數中,但我發現了一個錯誤

1084: Syntax error: expecting rightparen before colon. 
+0

這是編譯錯誤還是運行時錯誤? –

+0

你不能調用一個聲明參數類型的函數。考慮通過監聽器函數和代碼中的另一個地方創建共享功能。 – papachan

+0

那麼有可能調用相同的函數嗎?或者我應該把我的事件監聽器放在recieveText1函數中? – user547794

回答

0

你爲什麼要手動調用「onLoadProgress」?
應該自動執行(如果你的文件沒有被緩存,並且要添加的聽衆正確
我看到你的addEventListener在你的問題,但你是不是表示在/當你加入這個監聽器。

無論如何,如果你想執行你的onLoadProgress你應該做這樣的事情:

var bytesLoaded:uint = 50; 
var bytesTotal:uint = 100; 
var evt:ProgressEvent = new ProgressEvent(ProgressEvent.PROGRESS, false, false, bytesLoaded, bytesTotal); 
onLoadProgress(evt); 

必須注意的是,你需要創建一個「假」的進展情況,並分配信息bytesLoaded假貨和bytesTotal值
而甚至知道onLoa dProgress將只執行一次。
我確定這不是你想要的。

請更好地解釋你想做什麼。

+0

我會盡力解釋一點。我有一個從JavaScript調用的函數加載MP3。我需要在單擊javascript按鈕時運行onLoadProgress事件。我認爲它會自動使用eventListener,但它不起作用。加載程序在加載初始mp3時工作,但在第二個(recieveText1)時不工作。我需要在開始播放之前重新加載第二首mp3。任何想法我做錯了什麼? – user547794

+0

我更新了我的問題,使用的代碼和不代碼的代碼 – user547794

0

我在函數內部添加了事件監聽器,現在一切正常。

相關問題