Создайте MC addChild для сцены, но как привязать функцию перетаскивания? AS3

У меня проблемы с созданием видеоклипа, поэтому я могу перетаскивать его по сцене. Сценарий: пользователь нажимает кнопку, которая запускает фрагмент ролика на сцену, оттуда он может перемещать элемент по сцене - это перетаскиваемый объект. Я могу сделать так, чтобы movieClip появлялся, я могу заставить его перетаскивать ... но я не могу заставить его делать и то, и другое, как только я пытаюсь прикрепить функцию перетаскивания. Любые указатели, пожалуйста? Я новичок в as3! :-)

spawner_btn.addEventListener(MouseEvent.CLICK, spawnspinkjewel);

function spawnspinkjewel(event:MouseEvent):void
{
  var myChild:pink_jewel= new pink_jewel();
  stage.addChild(myChild)
myChild.x=300; 
    myChild.y=150;
} 
pink_jewel.addEventListener(MouseEvent.MOUSE_DOWN, pickupblack_pink_jewel);
pink_jewel.addEventListener(MouseEvent.MOUSE_UP, dropblack_pink_jewel);

function pickupblack_pink_jewel(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropblack_pink_jewel(event:MouseEvent):void {
event.target.stopDrag();
}

person user3082874    schedule 24.01.2014    source источник


Ответы (1)


Вы добавили слушателей к неправильному объекту.

Измените это:

pink_jewel.addEventListener(MouseEvent.MOUSE_DOWN, pickupblack_pink_jewel);
pink_jewel.addEventListener(MouseEvent.MOUSE_UP, dropblack_pink_jewel);

К этому:

myChild.addEventListener(MouseEvent.MOUSE_DOWN, pickupblack_pink_jewel);
myChild.addEventListener(MouseEvent.MOUSE_UP, dropblack_pink_jewel);
person Bennett Yeates    schedule 24.01.2014
comment
Привет, это выглядит достаточно просто, спасибо. Когда представится возможность, у меня будет танкер. - person user3082874; 27.01.2014
comment
Привет, ладно, тогда еще немного застрял. На сцене появляется видеоклип ... но я не могу перетащить объект. Он появляется над курсором, и я переместил курсор на верхний слой шкалы времени. Есть какие-нибудь подсказки или предложения? - person user3082874; 28.01.2014
comment
Попробуйте это в начале и в конце перетаскивания: (e.target as MovieClip).startDrag( true );, а затем (e.target as MovieClip).stopDrag() соответственно. - person Bennett Yeates; 28.01.2014