2013-05-03 22 views
0

首先翻譯,請看看我的SWF:http://krakow45.pl/spec/warcaby/Warcaby3D.html移動在AS3對象,而它是由的Matrix3D

您可以移動棋子,它工作得很好。但是,當你翻譯遊戲板時(按任何方向鍵),問題就開始了。在此之後,你不能移動棋子。這是小部分的我的代碼:

翻譯:

case Keyboard.LEFT: 
    _matrix = new Matrix3D(); 

_matrix.appendTranslation(0, -200, 0); 
_matrix.appendRotation(_rot++, Vector3D.X_AXIS); 
_matrix.appendTranslation(0, 200, _depth); 

_table._board.transform.matrix3D = _matrix; 

break; 

移動棋子:

private function MouseDown(event:MouseEvent):void 
    { 
     var pawn:Pawn = event.currentTarget as Pawn; 

     _xPos = pawn._xPos; 
     _yPos = pawn._yPos; 

     _txt.text = pawn._xPos + " - " + pawn._yPos + "\n"; 

     pawn.startDrag(); 
    } 
+0

當您移動電路板時,是否輸入了您的聽衆? – Kodiak 2013-05-03 11:53:48

+0

我想是的,因爲當我移動它並嘗試移動棋子時,在棋盤旁邊的文本框返回位置 – 2013-05-04 09:58:59

回答

0

好吧,我解決了這個用是這樣的:(對startStag())

private var _clicked:Boolean 
private var _currentPawn:Pawn 

private function MouseDown(event:MouseEvent):void 
{ 
    _clicked = true; 
    _currentPawn = event.currentTarget as Pawn; 
    // rest of my code 
} 

private function MouseMove(event:MouseEvent):void 
{ 
    if(_clicked) 
    { 
     _currentPawn.x = mouseX; 
     _currentPawn.y = mouseY; 
    } 
} 

private function MouseUp(event:MouseEvent):void 
{ 
    _clicked = false; 
// rest of my code 
}