【发布时间】:2023-03-17 00:57:02
【问题描述】:
我正在用 Flash 制作一款格斗游戏,虽然一切都在运行,但我错过了一些东西:胜利/失败屏幕。从逻辑上讲,我知道该怎么做:
if character.hp < 0
{
character.dead = true;
dispatchevent("death", event)
}
我的问题是我不知道如何编码。我知道我将使用两个类和我的两个 .fla 文件(除非我错了)。
我在这里有两个 .fla 文件:Menu.fla 文件和 Arena.fla 文件。 Menu.fla 包含游戏的整个导航、选项、角色选择屏幕等,当玩家进入战斗时,它会加载 Arena.fla 文件,该文件仅包含背景(取决于选择的阶段),现在只设置为一帧的长度。对于Arena.fla,真正的动作发生在我的课堂上,但从逻辑上讲,我只需要HP.as 和Character.as。
在Character.as 中,我声明了以下变量:
var isDead:Boolean = false; //is character dead?
在HP.as,相信我应该有以下内容:
if(currentHp<0)
{
currentHp = 0;
character.isDead = true; //declared as var `character:Object;`
EventDispatcher.dispatchEventListener("playerDead", playerDead);
}
最后,在Arena.fla,我希望能够检测到上述事件监听器并简单地移动到第二帧,它将显示一条消息,风格为“PLAYER ONE HAS WON”或“PLAYER ONE” HAS LOST”带有一个按钮,可以让我返回角色选择屏幕。这是我卡住的第一部分:如何在我的主 .fla 文件中检测调度的事件侦听器?
其次,如果玩家点击“CONTINUE”按钮,无论玩家输赢都会显示,我的Menu.fla(加载Arena.swf)如何检测到这个点击事件,卸载游戏,并返回角色选择界面?
提前感谢您帮助我。我意识到这是很多文字,但它是我能做到的最具描述性的。如果您对我的问题有任何疑问或需要任何澄清,请随时说出来。
-克里斯托弗
【问题讨论】:
标签: actionscript-3 mouseevent flash-cs3 event-dispatching