星期六, 5月 16, 2009

AS2影片播放完畢後執行特定動作

今天在公司試著想把Flash的影片在一開始的時間不要自動播放,讓使用者想看的時候再按下預覽視窗裡面的播放箭頭才播放影片;由於公司使用的是Flash 8,想當然爾,自然是用AS2來達到這個功能。做法如下:

首先將Flash的影片播放組件命名my_FLVPlybk為它的實體名稱。在影片的第一個影格事先放置示意的圖案,並命名為preview_btn。當我們按下這個預覽按鈕時,就告訴Flash把影片帶至第二個影格(設定影格名稱為theVideo)停住,並按放影片播放組件所指定的影片畫面。

第一個影格的as2程式碼:
preview_btn.onRelease = function(){
this._parent.gotoAndStop("theVideo");
//告訴flash到上一層時間軸的「theVideo」停住
}


//當flash到theVideo的時候,會觸發該時間軸上預先設定的AS2程式。至於「theVideo」這個時間點上的時間軸程式語法如下,原則上是使用listenerObject來監聽一些動作:
import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.stopped = function(eventObject:Object):Void {
gotoAndStop("theVideo");
到指定的時間軸位置停住不播放。
};
my_FLVPlybk.contentPath = "myvideo.flv";
//指定my_FLVPlybk這個影片播放程式的位置。
my_FLVPlybk.setBufferTime(7);
my_FLVPlybk.addEventListener("stopped", listenerObject);

基本上就是在影片播完「停住」以後才會觸發另外的動作,如果是要影片在完成(complete)播放後觸發某些動作,也可以使用底下的as2程式碼:

import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.complete = function(eventObject:Object):Void {
gotoAndStop("theVideo");
};
my_FLVPlybk.contentPath = "myvideo.flv";
my_FLVPlybk.setBufferTime(7);
my_FLVPlybk.addEventListener("complete", listenerObject);

1 則留言:

匿名 提到...

請問一下!如果是as3.0如何讓播放完的影片到指定的影個停住呢?