在Adobe Flash和ActionScript 3.0中,我在按鈕內有一個動畫片段。我想在鼠標懸停後播放整個影片剪輯。 但是,動畫片段只播放直到鼠標結束。如果鼠標在那裏,我想播放電影剪輯到最後。使用鼠標將影片剪輯全部播放到其全部內容
任何幫助表示讚賞。 我發現了一個博客,但它僅適用於AS2。這是我想要做的,但與AS3:EchoEcho
我是flash的noob,我不知道什麼分享這種問題。我公司將提供所需要解決問題
感謝
在Adobe Flash和ActionScript 3.0中,我在按鈕內有一個動畫片段。我想在鼠標懸停後播放整個影片剪輯。 但是,動畫片段只播放直到鼠標結束。如果鼠標在那裏,我想播放電影剪輯到最後。使用鼠標將影片剪輯全部播放到其全部內容
任何幫助表示讚賞。 我發現了一個博客,但它僅適用於AS2。這是我想要做的,但與AS3:EchoEcho
我是flash的noob,我不知道什麼分享這種問題。我公司將提供所需要解決問題
感謝
爲簡單起見... 如果你有一個實例名爲「your_mc」包含動畫(在庫中的MC命名your_symbol什麼,你有一個名爲「your_mc」
實例吐溫如果影片剪輯放在舞臺上,你可以試試這個。
import flash.display.MovieClip;
import flash.events.MouseEvent;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
your_mc.addEventListener(MouseEvent.MOUSE_OUT,playStopClip);
function playStopClip(e:MouseEvent):void{
switch (clipStopped) {
case false:
clipStopped = !clipStopped;
break;
case true:
clipStopped = !clipStopped;
break;
}
if (!clipStopped){
your_mc.gotoAndPlay(1);
}else{
your_mc.gotoAndStop(1);
}
}
小心基於類的,這不是的,應該被視爲基本的例子! 如果你想要更具體的東西,請編輯你的問題!
很基本的例子在這裏:如果你想要的東西更高效請
這是不乾淨的,所以,只要編輯你的問題。 如果你想播放整個MovieClip,只需檢查MC.currentFrame和MC.total幀並添加一個布爾值來檢查它。 所以MC不能在動畫結束之前停下來。
此致敬禮。 薩科
[編輯] 這將發揮你的電影剪輯,結束時,鼠標懸停......
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
var isRunning:Boolean = false;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
function playStopClip(e:MouseEvent):void{
if(clipStopped && isRunning==false){
trace("is Running = " + !isRunning)
your_mc.gotoAndPlay(1);
clipStopped = !clipStopped;
isRunning = true
your_mc.addEventListener(Event.ENTER_FRAME,changeStatus);
}
}
function changeStatus(e:Event):void{
if (your_mc.currentFrame == your_mc.totalFrames){
isRunning = false;
clipStopped = true;
your_mc.gotoAndStop(1);
your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus);
}
trace(your_mc.currentFrame + "/" + your_mc.totalFrames);
}
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
var isRunning:Boolean = false;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
function playStopClip(e:MouseEvent):void{
if(clipStopped && isRunning==false){
trace("is Running = " + !isRunning)
your_mc.gotoAndPlay(1);
clipStopped = !clipStopped;
isRunning = true
your_mc.addEventListener(Event.ENTER_FRAME,changeStatus);
}
}
function changeStatus(e:Event):void{
if (your_mc.currentFrame == your_mc.totalFrames){
isRunning = false;
clipStopped = true;
your_mc.stop();
your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus);
}
trace(your_mc.currentFrame + "/" + your_mc.totalFrames);
}
如果您想將您的影片剪輯播放到最後一幀,則不需要更多MouseEvent.MOUSE_OUT。
MouseEvent.MOUSE_OVER僅在您的電影剪輯動畫完成時可用。
所以當你沒有給反饋和問題不清楚:「DownVote」
[/編輯]
您可以通過展示你現在有什麼樣的代碼開始。 – frankhermes
該按鈕有狀態,一旦你將鼠標移出按鈕,將'over'狀態改回'up'狀態,因此丟棄'over'狀態下的所有東西(我認爲這是你想播放的剪輯)。您需要首先從按鈕中拉出動畫片段,然後編寫按鈕和剪輯行爲的腳本。 – Organis