2013-02-28 39 views
0

我已经构建了一个简单的Flash游戏,只需要用户根据他们从多项选择题中选择的答案,将鼠标光标从一个开始位置导航到四个结束位置之一。如何使用ActionScript 3将变量发送到Flash中的其他框架?

我想在游戏中加入一种评分方法。这是我的代码到目前为止,评分系统不工作,当用户击中墙壁或得到答案错误时,他们被引导到另一个框架,向他们展示一个“不正确”的屏幕,并允许他们点击一个按钮,它说重试。重试按钮将它们带回主框架,最终将分数重置为0.如果可能,我会如何将变量传递给其他框架?

import flash.events.Event; 
import flash.net.*; 

var isStart = false; 
var score:Number = 0; 

mc_wall.addEventListener(MouseEvent.MOUSE_OVER,overWall); 
function overWall(e:Event) { 
if (isStart == true){ 
gotoAndStop(5); 
score -= -2; 
} 
} 

mc_start.addEventListener(MouseEvent.MOUSE_OVER,overStart); 
function overStart(e:Event) { 
isStart = true; 
} 

mc_blue.addEventListener(MouseEvent.MOUSE_OVER,overBlue); 
function overBlue(e:Event) { 
if (isStart == true){ 
gotoAndStop(4); 
score += 10; 
isStart = false; 
} 
} 

mc_red.addEventListener(MouseEvent.MOUSE_OVER,overRed); 
function overRed(e:Event) { 
if (isStart == true){ 
gotoAndStop(6); 
score -= -2; 
isStart = false; 
} 
} 

mc_green.addEventListener(MouseEvent.MOUSE_OVER,overGreen); 
function overGreen(e:Event) { 
if (isStart == true){ 
gotoAndStop(6); 
score -= -2; 
isStart = false; 
} 
} 

mc_yellow.addEventListener(MouseEvent.MOUSE_OVER,overYellow); 
function overYellow(e:Event) { 
if (isStart == true){ 
gotoAndStop(6); 
score -= -2; 
isStart = false; 
} 
} 

任何帮助,将不胜感激

回答

1

当创建Flash游戏,在我看来,这是更好地利用外部类。

一个修复方法是在主代码之前添加一个框架,并在该框架中将您的评分变量设置为零。这样,分数只设置为零,当返回到主框架时,分数将保持相同。 (你可能希望在减去分数时添加一条if语句,减去你想要的负分数)

更好的方法是使用外部类并将主代码保存在Main类中。这个类将有一个构造函数,并且只将初始分数初始化为零。

-Travis

+0

谢谢你的回应,我决定做你的建议,并在我的主框架之前在框架中声明分数变量。大家现在工作得很好,再次感谢! – user2065502 2013-02-28 20:54:47

相关问题