首先,我想说我不是很擅长AS3,我完全是自学成才,所以我确信有很多事情我做得很糟糕,效率低下或者说不好如果有什么可以改进的话,我对这些问题的评论感到高兴。
好的,这似乎是一个非常简单的问题,但我不知道它的确切代码,我无法在任何地方找到示例
我想要做的是将我用于角色的图像更改为单击按钮上的单独图像,然后在一段时间后将其恢复为原始图像。
我的图片被设置为影片剪辑,我这样称呼它:
public var Smallclock_hero = new Smallclock;
值得注意的是,smallclock有它自己独立的课程。
有没有办法可以在鼠标点击事件中更改此图像?
答案 0 :(得分:0)
一种简单的方法是:
在Smallclock动画片段的第二帧上添加新图像。让这个新图像跨越时间轴的几个帧,持续一段时间。
在Smallclock动画片段的第一帧放置stop();
动作。
btn.addEventListener(MouseEvent.CLICK, btnChangeCharacterFrame);
function btnChangeCharacterFrame(e:MouseEvent)
{
Smallclock_hero.gotoAndPlay(2);
// Or use a frame label
// Smallclock_hero.gotoAndPlay("jump");
}
答案 1 :(得分:0)
这可以使用visible属性和setTimeout相对简单地实现。当您单击MovieClip时,您将要使旧图像不可见并且新图像可见:
oldImage.visible = false;
newImage.visible = true;
然后,您将要使用setTimeout将可见属性更改回:
oldImage.visible = true;
newImage.visible = false;
setTimeout可以在指定的毫秒数后运行一个函数。以下是在wonderfl:http://wonderfl.net/c/acxl
上使用此技术的示例 private var imageA:ImageA = new ImageA();
private var imageB:ImageB = new ImageB();
private var revertId:int;
public function Main() {
imageB.visible = false;
addChild(imageA);
addChild(imageB);
addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(e:MouseEvent):void{
clearTimeout(revertId);
revertId = setTimeout(revert, 1000);
imageB.visible = true;
imageA.visible = false;
}
private function revert():void{
imageB.visible = false;
imageA.visible = true;
}