leafMc.addFrameScript(leafMc.totalFrames-1,sendMsg);
這句語句是說當leafMc播放到最後一幀時,觸發一個函數sendMsg,最好不要直接寫leafMc的總幀數,而是用leafMc.totalFrames-1,而且必須減一。
這個addFrameScript方法相當於一個監聽器,相當於 addEventListener(Event.ENTER_FRAME,*****);而且在官方api裏面是沒有說明的。
今天在flashguru上看到Actionscript 3.0未公開的addFrameScript()方法.此法主要是適合於使用flash 9創作環境來工作的羣體.
addFrameScript的功能是允許你指定在flash player播放頭播放到指定的位置時觸發事件.這個方法可以接收四個參數,但目前只知道其中的前兩個.
語法:
MovieClip.addFrameScript(frame:uint,notify:Function)
用法:
function output()
{
trace('播放頭已到了第10幀');
}
//幀數的計算是從0的位置開始的,所以在使用addFrameScript的時候9代表的即是第十幀.
addFrameScript(9,output);
實際上addFrameScript()還可以接收任意多組的參數.如下:
MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);
也就是你說可以同時指定多組觸發事件,在1,2,3幀上同時指定觸發的動作,如果有不止一個動作事件指定在相同的一個幀上,那麼,只有後者的動作會被觸發.
如果要移除動作:
MovieClip.addFrameScript(0,null)
{
trace('播放頭已到了第10幀');
}
//幀數的計算是從0的位置開始的,所以在使用addFrameScript的時候9代表的即是第十幀.
addFrameScript(9,output);
實際上addFrameScript()還可以接收任意多組的參數.如下:
MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);
也就是你說可以同時指定多組觸發事件,在1,2,3幀上同時指定觸發的動作,如果有不止一個動作事件指定在相同的一個幀上,那麼,只有後者的動作會被觸發.
如果要移除動作:
MovieClip.addFrameScript(0,null) //這裏我懷疑是MovieClip.addFrameScript(0,null),這裏的0就是之前指定的那一幀。