将鼠标悬停在完整播放影片剪辑
Posted
技术标签:
【中文标题】将鼠标悬停在完整播放影片剪辑【英文标题】:Playing a movie clip to its full with mouse over 【发布时间】:2017-05-06 15:08:44 【问题描述】:在 Adobe Flash 和 ActionScript 3.0 中,我在按钮中有一个影片剪辑。我想在鼠标悬停时播放整个影片剪辑。 但是,影片剪辑只会播放到鼠标悬停为止。如果有鼠标,我想将影片剪辑播放到最后。
感谢任何帮助。 我找到了一个博客,但它仅对 AS2 有效。这就是我想要做的,但是使用 AS3:EchoEcho
我是 flash 的菜鸟,我不知道该分享什么来解决这类问题。我会提供解决问题所需的任何东西
谢谢
【问题讨论】:
你可以先展示你现在拥有的代码。 该按钮具有状态,一旦您将鼠标移出,按钮就会将“结束”状态更改回“向上”状态,从而丢弃处于“结束”状态的所有内容(我认为这是剪辑你想不想玩)。您需要先从按钮中拉出影片剪辑,然后编写按钮和剪辑行为的脚本。 【参考方案1】:为了简单... 如果您有一个名为“your_mc”的实例包含您的动画(库中有一个名为 your_symbol 的 MC,并且您在该实例中有一个名为“your_mc”的补间
如果MovieClip放在舞台上,你可以试试这个。
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);
注意这不是基于类的,应该被视为一个基本示例! 如果您想要更具体的内容,请编辑您的问题!
这里是非常基本的示例:
fla file
swf file
这不干净,所以,如果你想要更有效的东西,请编辑你的问题。 如果您想播放整个 MovieClip,只需检查 MC.currentFrame 和 MC.total 帧并添加一个布尔值来检查它。 所以 MC 不能在动画结束前停止。
最好的问候。 尼古拉斯
[编辑] 当鼠标悬停时,这会将您的 MovieClip 播放到最后...
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);
fla file
swf file
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);
fla file
swf file
如果您想将您的电影剪辑播放到最后一帧,此处不再有 MouseEvent.MOUSE_OUT。
MouseEvent.MOUSE_OVER 仅在您的电影剪辑动画完成时可用。
所以你没有给出反馈并且问题不清楚:“DownVote”
[/编辑]
【讨论】:
@newron 请编辑您的问题!这次没有“downvote” Flash 已经死了 :( 大声笑,我不知道为什么我得到一个如此基本的答案的“赞成票”:) 我可以知道你的伪吗?无论如何,THX,但这真的很基本! @newron 这个答案是否解决了您的问题?您需要更详细的答案吗?显示您的代码,但这很容易解决此问题! ;) 如果您不提供反馈,将很难帮助您@newron以上是关于将鼠标悬停在完整播放影片剪辑的主要内容,如果未能解决你的问题,请参考以下文章