【问题标题】:as3 how to perfom different actions if button is clicked or notas3如果单击按钮,如何执行不同的操作
【发布时间】:2014-04-17 16:48:27
【问题描述】:

我是一个完整的 n00b。

我正在开发一款游戏。基本上,如果在某个关键帧上按下按钮,我必须不执行任何操作,但如果没有单击,我需要场景继续到某个点,然后转到另一帧。

在我愚蠢的头脑中,我想:如果我可以创建一个空的全局变量,我可以在我的框架上单击按钮时输入“某事”并检查后一个框架“如果 globalvar ==“某事”:没有任何反应,其他:gotoAndPlay(我需要的地方)”

说明图:

显然这不是 AS3 的工作方式。那我该怎么办?

import flash.events.MouseEvent;

var pressed = "no";

function work(event:MouseEvent):void
{
    pedal.visible = false;
    cursor_mc.visible = false;
    pressed = "yes"
}

pedal.addEventListener(MouseEvent.CLICK, work);

这是我在需要执行操作时得到的。

然后我会放(我从来没有在 as3 中写过 if 语句)

if (pressed == "no") {
    gotoAndPlay(some other frame);
}

这将被放置在与前一个完全不同的帧AND LAYER上,这样中间的部分仍然可以播放。

【问题讨论】:

  • 你的逻辑听起来是正确的。您应该能够设置一个变量或布尔值,然后检查它的条件,如果为 true,它将执行某些操作,如果为 false,它将执行其他操作。您可以发布示例代码吗?你做事的顺序可能是个问题。
  • 我添加了更多细节,遗憾的是我对 As 非常陌生,甚至不知道语法是否正确,我一直在检查 adobe 帮助,对我来说似乎还可以。
  • 嘿 Neurone00,欢迎来到社区。如果你有一点钱,可以投资stackoverflow.com/tags/actionscript-3/info 中提到的一本 AS3 书籍。我个人推荐 ActionScript 3.0 Bible。这是我们公司使用的。
  • 奇怪的是,我的解决方案,正如上面所说的,效果很好。谢谢 Jason 的建议,我会考虑的!

标签: actionscript-3 flash animation


【解决方案1】:

您必须添加一个新事件和 ENTER_FRAME 事件,该事件将在每一帧上触发一个函数。在那里你可以检查按钮是否被按下。例如:

stage.addEventListener(Event.ENTER_FRAME, updateFunction);
function updateFunction(e:Event){
    if(pressed == "no"){
        if(currentFrame == frame number when you want to check){
            gotoAndPlay(some other frame);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多