嘿大家所以我试图使用我的主类<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/bundle.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="UTF-8">
<meta property="og:title" content="UCR" />
<meta property="og:type" content="website" />
<meta property="og:image" content="" />
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="500">
<!-- <meta property="og:url" content="http://dev.cr/" /> -->
<meta property="og:description" content="" />
<!-- <script>
$(".se-pre-con").fadeOut("slow");
</script> -->
</head>
<body aurelia-app="main" class="uscr-body">
<div class="se-pre-con"><!--<h1 class="uscr-h1-loading">Cargando UCR</h1> --></div>
<script src="js/jquery-2.1.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="jspm_packages/system.js"></script>
<script src="config.js"></script>
<script>
System.baseUrl = 'dist';
System.import('aurelia-bootstrapper').catch(console.error.bind(console));
</script>
</body>
</html>
从一个名为mcPressMachine
的单独类中访问布尔变量。我想要做的是当得分为> = 6时,然后在我的主引擎类输入帧事件中更改布尔值:
SmashyFoodEngine
在我的if (nScore >= 6)
{
for each(var AllPresses:mcPressMachine in aPressMachineArray)
{
AllPresses.level_1 = false;
AllPresses.level_2 = true;
}
}
课程中,我设置了布尔值来控制下一个播放时间轴上该Movie Clip类的哪些帧。所以基本上如果level_1为真,那么如果level_2为真,那么从(1,8)播放randome帧然后是frame(9,13)等...在pressMachine类中设置如此:
mcPressMachine
所以当我跟踪它并且得分为> = 6时,布尔值完全改变但屏幕上没有任何反应。电影剪辑完全相同,不会更改为level_2帧(9-13);
这也是我的主类中的影片剪辑添加到舞台上并且我试图改变:
public var level_1:Boolean = true;
public var level_2:Boolean = false;
private function init():void
{
if (level_1)
{
var randomFrameLevel_1:Number = randomNumber(1, 8);
this.gotoAndStop(randomFrameLevel_1);
}
if (level_2)
{
var randomFrameLevel_2:Number = randomNumber(9, 13);
this.gotoAndStop(randomFrameLevel_2);
}
}
有谁能看出我做错了什么?我没有因为工作不正常而得到任何错误。任何建议都会很棒。谢谢!
答案 0 :(得分:1)
这是我目前能做的最好的事情。
main
这会将您的参数传递给构造函数代码,将值保存在该类实例的属性中。
甚至更简单
var _var1:Boolean;
var _var2:Boolean;
public function MyClass(first:Boolean,second:Boolean):void{
this._var1 = first;
this._var2 = second;
if (_var1 == true) {
// stuff
}
if (_var2 == true){
// etc.
}
您在此注意到我已将var _level:int;
public function MyClass(lev:int=1):void{
this._level = lev;
if (lev == 1){
// do stuff
} else if (lev==2){
// etc
}
值设置为等于_level
参数。如果你需要这个类的实例为其他东西提供lev
属性,那真的是必要的。你看我也可以这样做:
_level
我在类定义和构造函数代码中都省略了public function MyClass(lev:int=1):void{
if (lev == 1){
// do stuff
} else if (lev==2){
// etc
}
属性的声明。这意味着您可以将变量传递给构造函数,而不会将该信息永久存储在该类的特定实例中,但仍然会使这些参数永久地影响结果。
然后当您实例化该类的新实例时,只需执行
_level
或我更好,更简单的版本
var myInstance = new MyClass(true, false); // using the first example