将用于我的角色的图像交换为按钮单击时的单独图像

时间:2014-05-11 15:12:23

标签: actionscript-3 flash events

首先,我想说我不是很擅长AS3,我完全是自学成才,所以我确信有很多事情我做得很糟糕,效率低下或者说不好如果有什么可以改进的话,我对这些问题的评论感到高兴。

好的,这似乎是一个非常简单的问题,但我不知道它的确切代码,我无法在任何地方找到示例

我想要做的是将我用于角色的图像更改为单击按钮上的单独图像,然后在一段时间后将其恢复为原始图像。

我的图片被设置为影片剪辑,我这样称呼它:

public var Smallclock_hero = new Smallclock;

值得注意的是,smallclock有它自己独立的课程。

有没有办法可以在鼠标点击事件中更改此图像?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是:

  1. 在Smallclock动画片段的第二帧上添加新图像。让这个新图像跨越时间轴的几个帧,持续一段时间。

  2. 在Smallclock动画片段的第一帧放置stop();动作。

  3. 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;    
    }