строка, следующая за другим экземпляром в мувиклипе - PullRequest
0 голосов
/ 03 августа 2011

У меня проблемы с созданием линии для следования другому экземпляру (перекрестие), моя линия не соответствует моему перекрестию, что не может быть потому, что я установил lineTo в позиции x и y моего перекрестия

SWF здесь http://megaswf.com/filelinks/1156538,

это код, где я делаю строки.

_cross это экземпляр перекрестия, а rodhit это экземпляр символа s, который янадели «наконечник» удочки, поэтому я не включил переезд.

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


            }
        }

1 Ответ

1 голос
/ 03 августа 2011

Вот пример, как вы могли бы сделать это: 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...