✔ 最佳答案
很久沒用了,希望還能幫到你。
1)你指的重播button是指? 播影片? 還是純粹在你stop後,想讓object重新replay一次?
2)應為stop();
注意一下分號有沒有遺漏掉。
要寫多少個stop(); 要視乎你想用什麼形式來處理那些object。
照你的情況來看,是有很多layer而只播放一次,然後在播放完整個flash後,可以按一個button來重播。
這情況只需放一個stop();在最後就可以了。
通常寫as都會在最頂的一層寫script,而非在不同的layer寫,這容易造成混亂。
在最頂的該層layer中,你只需在第一格和最後一格加入keyframe,然後在最後一格的keyframe中按F9編寫script。
鍵入stop();
這就可以使整個flash在播放一次後停止。
_____________________________________________________________
而另外,如果你的「重播」button是用來在影片完結後再播放一次的話,那就可用以下的方法處理。
首先畫出你button所需的object,然後用F8將其轉換成button,然後命名,不是在轉換成button時的命名,而是在轉換後按一下,屬性中的命名。(注意:要用as控制必需命名)
然後就可以開始寫這button的script,至於應該放置於哪裡,就要視乎你想該button何時可以生效,如果是一直都可以生效,就置於最前的一格,如果是想flash播放一次後,stop了的情況才生效,就把script置於最後的一格。
Script如下,當中My_btn為該button的命名,而mouseDown則為evnet名稱。這個script的效果是,當My_btn被滑鼠按下,則會將flash跳至第一格並播放。
My_btn.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
function mouseDown(event:MouseEvent):void {
gotoAndPlay(1);
}
_______________________________________________________________
希望能幫到你的忙,如果我給的答案方向錯了,你可以提出讓我加以修正,但你亦需提供更詳盡的解釋,否則依然有機會答錯你的問題=D
2011-11-23 11:09:27 補充:
我寫了一個例子,可以下載來看看。(我是用CS4,as3,應該能相容)
http://dl.dropbox.com/u/15368661/example.fla
首先,
1026:constructor functions must be instance methods. <-這個問題我還真沒有遇過,上網查了一下好像是與preloader有關,你有沒有加入其他as?如有,嘗試部分減少,找出問題源頭才作調整。
另一點,是在backgrond timeline加as 還是在moive clip中加as,其實是皆可。
但要在timeline控制mc的話,則需為mc命名,然後用其名字來控制。
2011-11-23 11:13:46 補充:
例如:在bg timeline我們會直接寫stop();,如果要控制mc,則寫xx_mc.stop();
其次,btn的script寫在timeline的as,詳情可參考我的例子。
而在最後幾秒出現,我的例子也做了給你看,簡單來說有兩種常用方法,一種是設置alpha值來使其漸現,甚或是在其需出現的frame才加入它的key frame。另外,亦可以visible的方法控制。
xx_btn.visible = true/false (true為出現,false為隱藏,注意的是隱藏了也可以按)