2011-08-03 25 views
0

我有麻烦制作一条线跟随另一个实例(十字线),我的线不是跟随我的十字线,这是因为我已经设置lineTo到我的十字准线的x和y位置线下面的另一个实例movieclip

的SWF在这里http://megaswf.com/filelinks/1156538

在那里我做线是这些代码。

_cross是十字叉实例,rodhit是我放在钓鱼竿的“尖端”的s符号的一个实例,因此我没有包含moveTo。

addEventListener(Event.ENTER_FRAME, crossLoop); 

public function crossLoop(e:Event):void 
     { 

      //calculations, distance, angle etc 
      if (_cross != null) 
      { 
      var a:Number = _cross.x- x; 
      var b:Number = _cross.y - y; 
      rodhit.graphics.lineTo(_cross.x, _cross.y); 
      var angRad:Number = Math.atan2(b, a); 
      var angDeg:Number = (angRad * 180/Math.PI); 
      //trace(angDeg); 

      rotation = (angDeg); 
      if (angDeg > -10) 
       rotation = -10; 
      if (angDeg < -170) 
       rotation = -170 


      } 
     } 
+0

你上传我不参加比赛,SWF,它抛出一个XML错误。你能更清楚地描述你遇到的问题,线路是在错误的地方画出来还是根本不画出来? – shanethehat

回答

1

这里有一个例子,你怎么可以这样做:http://wonderfl.net/c/6K52

package 
{ 
    import flash.display.Shape; 
    import flash.events.MouseEvent; 
    import flash.events.Event; 
    import flash.display.Sprite; 
    public class FlashTest extends Sprite { 
     private var _cross:Sprite; 
     private var _line:Shape; 
     public function FlashTest() { 
      _cross = new Sprite(); 
      _cross.graphics.beginFill(0xFF0000, 1); 
      _cross.graphics.drawCircle(0, 0, 20); 
      addChild(_cross); 

      _line = new Shape(); 
      _line.x = 200; 
      _line.y = 30; 
      addChild(_line); 

      stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 
      addEventListener(Event.ENTER_FRAME, onEnterFrame); 
     } 

     private function onMouseMove(evt:MouseEvent):void 
     { 
      _cross.x = stage.mouseX; 
      _cross.y = stage.mouseY; 
     } 

     private function onEnterFrame(evt:Event):void 
     { 
      _line.graphics.clear(); 
      _line.graphics.lineStyle(2, 0x000000, 1); 
      _line.graphics.lineTo(_cross.x - _line.x, _cross.y - _line.y); 
     } 
    } 
} 
相关问题