2011-02-12 51 views
0

美好的一天。我有一個關於閃存的問題......是否有可能加載一個剪輯的第一個2-3幀,而這些正在播放加載其餘的?actionscript flash - 在播放時加載幀

另外,如果答案在第一個問題ID是肯定的,它可以改變加載順序考慮在第一部分發生了什麼?

如果是的話......怎麼樣?

謝謝你的幫助。

回答

0

答案#1:是的。

默認情況下爲Flash動畫流,這意味着它們在加載幀1後立即開始播放。
但是,您必須確保庫中沒有任何符號嵌入第1幀 - 否則加載第一幀將花費更長的時間。另外,使用運行時共享庫​​也會產生類似的效果。

答案#2:如果你的意思是改變加載時循環的同一個SWF的加載順序,答案是否定的。您當然可以更改您加載到第一部電影中的其他SWF文件的加載順序。

+0

讓我舉個例子......我創建一個文本字段並將其保留在每一幀上。我在每一幀中都放了一些隨機電影(flv)。剪輯開始。當第一部電影正在播放時,我想加載第二部電影,但如果用戶在文本字段中鍵入3,我想在此時加載第三部電影,而第三部電影將加載第二部電影,第四部電影等。 – zozo 2011-02-12 09:43:07

1

簡而言之,加載時,flash播放器將從第1幀開始,並將繼續坐在那裏,直到第1幀中的所有數據都已載入。只有這樣它才能進入下一幀。通過選中「文件 - >發佈者設置」下的「Flash」選項卡中的「生成構建報告」複選框,您可以獲取詳細的報告數據導出到每個幀的報告。

要獲取簡單的加載顯示要添加一個在第1幀命名爲「loader_txt」文本字段,並添加以下代碼在行動:

stop(); 

    this.addEventListener(Event.ENTER_FRAME, loading); 

    function loading(e:Event):void{ 

     var total:Number = this.stage.loaderInfo.bytesTotal; 
     var loaded:Number = this.stage.loaderInfo.bytesLoaded; 

     loader_txt.text = Math.floor((loaded/total)*100)+ "%"; 

    if (total == loaded){ 
     play(); 
     this.removeEventListener(Event.ENTER_FRAME, loading); 
    } 

    } 

爲了確保您的資產和ActionScript代碼出口超過1幀這樣上面的代碼可以立即踢時,Flash影片開始加載,進入「文件 - >發佈設置」,選擇「Flash」選項卡,然後點擊「腳本」右邊的「設置...」按鈕。應該顯示一個對話框。在該對話框的「輸出框架中的類別」下,輸入2.

對於庫中的資產,您可能需要執行類似的操作。右鍵單擊庫資產並選擇屬性,您將看到取消選中「在第1幀中導出」的選項。如果取消選中它(這意味着Flash資源可以在該資源加載之前開始播放),則必須確保在時間軸上的第1幀以外的某個位置有對該符號的引用,否則Flash將從編譯中忽略它。

祝你好運!