[英]as3 boolean variable won't pass out of function
由於某種原因,我的值未在函數外部進行更新。 我試圖制作一個按鈕,例如“加號”,將影片剪輯“ topArrow”不斷向上移動。 我認為布爾值將是觸發此操作的簡便方法,但不會在函數外部進行更新。 為什么是這樣?
import flash.events.Event;
import flash.events.MouseEvent;
var speed:Number = 1;
plus.addEventListener(MouseEvent.MOUSE_DOWN, arrow_up);
plus.addEventListener(MouseEvent.MOUSE_UP, arrow_stop);
minus.addEventListener(MouseEvent.MOUSE_DOWN, arrow_down);
minus.addEventListener(MouseEvent.MOUSE_UP, arrow_stop);
var move_up:Boolean = false;
var move_down:Boolean = false;
function arrow_up(event:MouseEvent):void
{
trace("button pressed");
move_up = true;
}
function arrow_stop(event:MouseEvent):void
{
move_up = false;
move_down = false;
}
function arrow_down(event:MouseEvent):void
{
move_down = true;
}
while (move_up==true)
{
topArrow.y += speed;
}
while (move_down==true)
{
topArrow.y -= speed;
}
if(move_up)
{
trace("true");
}
那些while循環很可怕,一旦move_up為true,它將進入該循環並且永不退出?
我會做以下類似的事情來制作影片剪輯的動畫:
var speed:Number = 1;
plus.addEventListener(MouseEvent.MOUSE_DOWN, arrow_up);
plus.addEventListener(MouseEvent.MOUSE_UP, arrow_stop);
minus.addEventListener(MouseEvent.MOUSE_DOWN, arrow_down);
minus.addEventListener(MouseEvent.MOUSE_UP, arrow_stop);
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
var move_up:Boolean = false;
var move_down:Boolean = false;
function arrow_up(event:MouseEvent):void
{
trace("button pressed");
move_up = true;
}
function arrow_stop(event:MouseEvent):void
{
move_up = false;
move_down = false;
}
function arrow_down(event:MouseEvent):void
{
move_down = true;
}
function onEnterFrame(event:Event):void
{
if(move_up)
topArrow.y += speed;
else if(move_down)
topArrow.y -=speed;
if(move_up)
{
trace("true");
}
}
反編譯二進制文件並查看move_up setter函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.