使变量可用于所有类,ActionScript 3

时间:2016-11-13 22:03:05

标签: class actionscript-3 flash variables frameworks

我在fla的文档类(variables)中声明了一些main.as。我希望我的所有程序variables都可以访问这些classes

深入细节:

main.as - 类声明了一些公开variables。然后它继续添加名为scene的MovieClip实例,该实例基本上用作我程序内容的其余部分的容器。最后,它在children内添加了一些scene。这些children课程从这里开始接管。

所以层次结构基本上是这样的:stage => scene => children

应用程序本身:

当您打开该程序时,您会看到一个迷你游戏列表。一旦你选择了迷你游戏,就会添加child的迷你游戏,即child里面scene

无论您选择哪种迷你游戏,都会有一个scoreboard系统来确定您的积分,即variables

每个迷你游戏都会以自己的方式操纵这些点和scoreboard条件。这些条件和点(variables)仅在main.as中声明。

所有帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

通常对此问题通常有益的解决方案是:如果对象需要某些内容,则会将此内容作为参数传递给它。

  

每个迷你游戏都会以自己的方式操纵这些点和variables条件。这些条件和点(main.as)仅在int中声明。

您的积分不应该是var points:int = 0; 之类的基本变量,例如:

Score

这些问题是你不能通过引用传递它们。这意味着你无法将它们传递给游戏。如果这样做,则会创建一个副本,游戏只会修改其副本。

相反,你应该为你的积分创建一个类,我们称之为package { public class Score { private var _points:int; public function Score () { _points = 0; } public function get points():int { return _points; } public function set points(value:int) { _points = value; } } }

Score

然后在main.as中实例化var score:Score = new Score(); 对象:

var game:Game1 = new Game1(score);

创建游戏时,将该对象传递给每个游戏,例如:

Score

现在每个游戏都知道score.points += 5; 对象,它可以操纵该对象。例如,每个游戏可以通过对其通过构造函数接收的对象的引用来执行以下操作:

Score

scoreboard类代表main.as系统。

TL;博士

  1. 创建一个专用类,其中包含与评分和记分板相关的所有变量。
  2. json_encode
  3. 中创建该类的实例
  4. 将实例传递给每个单独的游戏,以便它可以操纵分数

答案 1 :(得分:0)

另一个选项(假设有利的答案)是使用静态关键字

静态 变量函数随时可用,无需定义任何该类的实例定义于。 请注意,静态函数本身只接受静态变量。 现在例如,如果您在Main

中定义了此代码(以下代码)
public static var myGlobalVariable:*;

要获得对myGlobalVariable的访问权限,只需在以下任意位置使用:

Main.myGlobalVariable;