Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3如何在帧之间进行通信_Actionscript 3_Flash_Flash Cs6 - Fatal编程技术网

Actionscript 3 AS3如何在帧之间进行通信

Actionscript 3 AS3如何在帧之间进行通信,actionscript-3,flash,flash-cs6,Actionscript 3,Flash,Flash Cs6,我一直在写一个游戏的时间线代码。我希望游戏中的不同框架(房间)能够彼此共享信息。当然,时间线代码仅限于它所用的帧 在读了很多书(“Flash基础游戏设计”和许多文章、教程、论坛等)之后,我决定使用document类。这也不管用。它似乎只适用于第一帧,而不适用于其他帧(我有四帧) 我如何让第四帧对第一帧中发生的事情做出反应?例如,如果播放机在第一帧中完成了某项任务,我希望第四帧中的电影剪辑可见。您可以使用静态变量-这些变量链接到类,而不是类的实例 假设您的文档类名为document.as,并且您希

我一直在写一个游戏的时间线代码。我希望游戏中的不同框架(房间)能够彼此共享信息。当然,时间线代码仅限于它所用的帧

在读了很多书(“Flash基础游戏设计”和许多文章、教程、论坛等)之后,我决定使用document类。这也不管用。它似乎只适用于第一帧,而不适用于其他帧(我有四帧)


我如何让第四帧对第一帧中发生的事情做出反应?例如,如果播放机在第一帧中完成了某项任务,我希望第四帧中的电影剪辑可见。

您可以使用静态变量-这些变量链接到类,而不是类的实例

假设您的文档类名为document.as,并且您希望在程序的任何部分都可以看到一个变量playerLives

在Document.as中声明它:

public static var playerLives:int = 3;
然后,您可以从代码中的任何其他位置直接引用它,方法是:

Document.playerLives
(请注意,变量是类本身的成员,而不是它的实例)

如果您想保持文档整洁,可以使用专用的Statics类保存这些变量,或者将它们附加到相关类(例如
Player.lifes

我已经有几年没有使用时间线/框架了,但我相信这就是我过去使用的方式

NB静态对于您的目的来说是很好的,但在某些方面,它们相当于AS2中的
\u global
变量(至少,它们可以以相同的方式使用)-许多人不赞成使用或过度使用它们,因为它们可以从您程序中的任何地方自由访问(因此对封装的OO概念是一种诅咒),但就我个人而言,我尽量不担心在小的情况下-最重要的是要知道任何设计模式的规则是什么时候可以被打破

它们的访问速度也比实例成员稍慢,但除非您不断地访问/更改它们,否则您不会注意到这一点(使诸如播放器速度之类的东西,它需要在每一帧都被引用/更改,静态的,这不是一个好主意)


希望这有帮助。

您可以使用静态变量-这些变量链接到类,而不是类的实例

假设您的文档类名为document.as,并且您希望在程序的任何部分都可以看到一个变量playerLives

在Document.as中声明它:

public static var playerLives:int = 3;
然后,您可以从代码中的任何其他位置直接引用它,方法是:

Document.playerLives
(请注意,变量是类本身的成员,而不是它的实例)

如果您想保持文档整洁,可以使用专用的Statics类保存这些变量,或者将它们附加到相关类(例如
Player.lifes

我已经有几年没有使用时间线/框架了,但我相信这就是我过去使用的方式

NB静态对于您的目的来说是很好的,但在某些方面,它们相当于AS2中的
\u global
变量(至少,它们可以以相同的方式使用)-许多人不赞成使用或过度使用它们,因为它们可以从您程序中的任何地方自由访问(因此对封装的OO概念是一种诅咒),但就我个人而言,我尽量不担心在小的情况下-最重要的是要知道任何设计模式的规则是什么时候可以被打破

它们的访问速度也比实例成员稍慢,但除非您不断地访问/更改它们,否则您不会注意到这一点(使诸如播放器速度之类的东西,它需要在每一帧都被引用/更改,静态的,这不是一个好主意)


希望这有帮助。

如果您在时间线上编写代码,我的建议是在时间线上创建两个层,一个用于“帧动作”——在该层中插入特定于单个帧的代码(当电影剪辑在特定帧上停止时将起作用)。。还可以再创建一个称为全局操作的层(用于整个时间线)。只有第一帧是关键帧,在时间线结束之前应该有空帧。 在该层中,actions写入要从同一时间轴中的任何关键帧访问的代码

如果在为整个时间轴(全局操作)编写的操作中定义了一个变量,则该变量将在所有帧上可用

现在,如果您想基于某个动作转到另一个帧,只需在包含全局动作的层中编写一些函数,并通过帧动作调用该特定函数。要转到其他帧,请使用flash的“gotoAndStop(frameNumber)”功能

我想告诉你,虽然它可以工作,但我不建议以这种方式使用它


HTH.

如果您在时间轴上编写代码,我的建议是在时间轴上创建两个层,一个用于“帧操作”-在该层中插入特定于单个帧的代码(当电影剪辑在该特定帧上停止时将起作用)。。还可以再创建一个称为全局操作的层(用于整个时间线)。只有第一帧是关键帧,在时间线结束之前应该有空帧。 在该层中,actions写入要从同一时间轴中的任何关键帧访问的代码

如果在为整个时间轴(全局操作)编写的操作中定义了一个变量,则该变量将在所有帧上可用

现在,如果您想基于某个动作转到另一个帧,只需在包含全局动作的层中编写一些函数,并通过帧动作调用该特定函数。要转到其他帧,请使用flash的“gotoAndStop(frameNumber)”功能

我想告诉你,虽然它可以工作,但我不建议以这种方式使用它