在Action Script 3中是否有一种刷新功能的方法?我想我正在寻找的是当我切换屏幕以重置或刷新功能时,该功能也被绑定到阵列中,因此我不知道这是否会影响任何事情。该程序正在这样工作,用户选择了59个数字5.所以这里是我正在使用的代码和我试图重置的代码。
var pickFive:Array = new Array (5);
var m_iNextElement:int = 0;
var b1:TextField = new TextField();
var b2:TextField = new TextField();
var b3:TextField = new TextField();
var b4:TextField = new TextField();
var b5:TextField = new TextField();
var myFormat:TextFormat = new TextFormat();
myFormat.size = 45;
Game.board.btn_1.addEventListener(MouseEvent.CLICK, btn1);
//Trying to reset this
function btn1(event:MouseEvent):void{
if(m_iNextElement <= 4){
Game.board.btn_1.gotoAndStop(2);
pickFive[m_iNextElement] = 1;
m_iNextElement++;
b1.defaultTextFormat = myFormat;
b1.text = pickFive[0];
b1.x = 510;
b1.y = 103;
addChild(b1);
b2.defaultTextFormat = myFormat;
b2.text = pickFive[1];
b2.x = 593;
b2.y = 103;
addChild(b2);
b3.defaultTextFormat = myFormat;
b3.text = pickFive[2];
b3.x = 673;
b3.y = 103;
addChild(b3);
b4.defaultTextFormat = myFormat;
b4.text = pickFive[3];
b4.x = 760;
b4.y = 103;
addChild(b4);
b5.defaultTextFormat = myFormat;
b5.text = pickFive[4];
b5.x = 840;
b5.y = 103;
addChild(b5);
}
}
答案 0 :(得分:0)
要进行重置,您只需要创建一个重置功能。也就是说,一个函数包含指令,以便将各种变量调整为首选,直到被认为是重置为止。然后,无论何时需要发生这种情况,您只需触发该函数的执行,例如:do_Reset();
确保do_Reset不是基于事件的函数,例如:function do_Rest (event:MouseEvent):void
如果您尝试手动执行它将无效只有鼠标事件可以触发该功能,如果它的设置是这样的..
无论如何,听起来你并没有真正寻找大多数人所谓的重置,而是更多的所谓的重新运行。 重置意味着您从零开始,事情发生并重置是为了重新开始,就像新的开始一样,重新运行就是事情发生的时候你需要的东西重新发生。
所以可能的解决方案..
var pickFive:Array = new Array(5);
var m_iNextElement:int = 0;
var b1:TextField = new TextField();
var b2:TextField = new TextField();
var b3:TextField = new TextField();
var b4:TextField = new TextField();
var b5:TextField = new TextField();
var myFormat:TextFormat = new TextFormat();
myFormat.size = 45;
Game.board.btn_1.addEventListener(MouseEvent.CLICK, btn1);
function btn1(event:MouseEvent):void
{
trace(" *** Clicked btn1 : Setting up game... ");
Game.board.btn_1.gotoAndStop(2);
setup_Board(); //to manually run that function
}
//Trying to reset this...
function setup_Board():void
{
if (m_iNextElement <= 4)
{
pickFive[m_iNextElement] = 1;
m_iNextElement++;
b1.defaultTextFormat = myFormat;
b1.text = pickFive[0];
b1.x = 510; b1.y = 103; addChild(b1);
b2.defaultTextFormat = myFormat;
b2.text = pickFive[1];
b2.x = 593; b2.y = 103; addChild(b2);
b3.defaultTextFormat = myFormat;
b3.text = pickFive[2];
b3.x = 673; b3.y = 103; addChild(b3);
b4.defaultTextFormat = myFormat;
b4.text = pickFive[3];
b4.x = 760; b4.y = 103; addChild(b4);
b5.defaultTextFormat = myFormat;
b5.text = pickFive[4];
b5.x = 840; b5.y = 103; addChild(b5);
}
}
function Game_Over():void
{
trace(" *** Game Over : Re-set game for new try... ");
Game.board.btn_1.gotoAndStop(1);
reset_Board(); //to manually run that function
}
function reset_Board():void
{
b1.text = b2.text = b3.text = b4.text = b5.text = "";
removeChild(b1); removeChild(b2); removeChild(b3);
removeChild(b4); removeChild(b5);
trace(" *** Re-set complete... ");
Game.board.btn_1.addEventListener(MouseEvent.CLICK, btn1);
//// Or manual function re-run without waiting for above mouse click
//setup_Board();
}
另外,你需要一个游戏而不是功能来处理事情。这可以是Mouse_Event
或Timer_Event
(例如:带有&#34的MClip;重启&#34;会显示,其点击监听器应定位游戏结束功能I&#39包括。或者计时器只需在一定时间倒计时后手动运行Game_Over();
。
否则只需多次重新运行就会导致内存使用量增加,而且通常会使系统变慢。考虑你的鼠标点击,只是不断添加5个动画片段,10次点击后你在屏幕上和RAM内存中有50个MClips,但是在点击X-num小时之后,你会责怪Adobe因为这样糟糕的程序员无法获得Flash&#34右&#34;没有它杀死你的电脑。并且威胁要把你的技能带到像HTML或MS Publisher这样的更好的系统(..只是开玩笑)