Перетаскивание объекта в as3 - PullRequest
0 голосов
/ 29 января 2011

У меня есть объект, который я хочу перетащить в as3, но, поскольку это объект, а не мувиклип или спрайт, я не могу его перетащить.Кто-нибудь знает, почему это и как я могу это решить?Я пытался разыграть его как Спрайта, но он не работает.

var order:Sprite = e.currentTarget as Sprite;
order.startDrag();

Итак, e.currentTarget дает мне [object Order], а я разыгрываю его как Спрайта.

Кто-нибудь может помочь, как я могрешить это?

1 Ответ

1 голос
/ 30 января 2011

Вы дали ответ на свой вопрос.Чтобы использовать startDrag, ваш объект должен быть как минимум Sprite.Если класс Order не расширяет Sprite, приведение события currentTarget к Sprite не даст большого результата.

Вы можете реализовать собственное решение, этот способ может быть проще для отладки ...

    package
    {
         import flash.display.MovieClip;
         import flash.events.*;

         public class Order extends MovieClip
         {
             public function Order()
             {
                 this.addEventListener( MouseEvent.MOUSE_DOWN , mouseDownHandler );

                 if( stage != null )
                    stage.addEventListener( MouseEvent.MOUSE_DOWN , mouseDownHandler );
             }

             private function mouseDownHandler ( event:MouseEvent ):void
             {
                 if( stage != null )
                    stage.addEventListener( MouseEvent.MOUSE_MOVE , mouseMoveHandler );
             }

             private function mouseMoveHandler ( event:MouseEvent ):void
             {
                  this.x = mouseX;
                  this.y = mouseY;
             }

             private function mouseUpHandler ( event:MouseEvent ):void
             {
                 stage.removeEventListener( MouseEvent.MOUSE_MOVE , mouseMoveHandler );
             }
         }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...