2011-01-29 6 views
0

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

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

Так e.currentTarget дает мне [object Order] и я бросил его как Sprite.

Кто-нибудь поможет мне решить эту проблему?

+0

Какого типа действительно расширить ваш класс 'Order', если таковые имеются? –

+0

Можете ли вы показать код для класса 'Order'? – Taurayi

ответ

1

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

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

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); 
      } 
     } 
    } 
+0

Ну заказ - это то, что я создал во флеше, я преобразовал его в мувиклип и экспортировал его. Но когда я отслеживаю его в flashbuilder, он говорит [object Order] вместо movieclip – vincent

+0

, в этом случае Order extends MovieClip отлично, поэтому проблема может быть где-то в другом месте. Вы можете попробовать реализовать прослушиватель событий MouseMove и проследить результаты ... – PatrickS

Смежные вопросы