嗨,我是动作脚本的新手,所以非常感谢任何帮助。
基本上我有一个有2层的电影,1个闭着眼睛看另一只眼睛。
所以功能应该是电影从闭眼时开始,当鼠标滚过电影时睁开眼睛然后当鼠标离开电影时它们再次关闭。
这是我目前的代码,但它不起作用:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
eyes_closed.addEventListener(MouseEvent.MOUSE_OVER, hideEyes);
eyes_closed.addEventListener(MouseEvent.MOUSE_OUT, openEyes);
function hideEyes(event:MouseEvent):void {
eyes_open.visible = true;
}
function openEyes(event:MouseEvent):void {
eyes_closed.visible = true;
}
}
我做错了什么?
答案 0 :(得分:1)
有几个选项可以做你正在尝试的事情,一个简单的解决方案是:
创建2层精灵 - 一个闭着眼睛,一个眼睛打开(可能你已经完成了)
将2个事件监听器添加到底部精灵(eyes_closed) - 鼠标悬停 - > show eyes_open,mouse_out - >隐藏eyes_open
现在这很重要 - 在你的eyes_open sprite(2中最重要的一个)上添加
eyes_open.mouseEnabled = false
eyes_open.mouseChildren = false
答案 1 :(得分:0)
一个简单的解决方案(没有双关语)是使用SimpleButton类。它允许您创建一个显示对象,在内部显示不同的显示对象,具体取决于3种状态(正常,鼠标悬停和鼠标按下)。此外,第4个显示对象确定“命中区域”(通常与用于正常状态的显示对象相同)。
示例:
import flash.display.SimpleButton;
var closed : MovieClip = new closedMC();
var open : MovieClip = new openMC();
var button : SimpleButton = new SimpleButton(closed, open, open, closed);
但有一件事:如果你将MovieClip与动画一起使用,当状态改变时(例如当你按下按钮时),MovieClip将从第1帧重新开始。
答案 2 :(得分:0)
当你让另一个可见时,你想让一个看不见。
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
eyes_closed.addEventListener(MouseEvent.MOUSE_OVER, hideEyes);
eyes_closed.addEventListener(MouseEvent.MOUSE_OUT, openEyes);
function hideEyes(event:MouseEvent):void {
eyes_open.visible = true;
eyes_closed.visible = false;
}
function openEyes(event:MouseEvent):void {
eyes_closed.visible = true;
eyes_open.visible = false;
}
}
答案 3 :(得分:0)
你忘了隐藏眼睛。
function hideEyes(event:MouseEvent):void {
eyes_open.visible = true;
eyes_closed.visible = false;
}
function openEyes(event:MouseEvent):void {
eyes_closed.visible = true;
eyes_open.visible = false;
}
另一种选择:使用setChildIndex