Привет, недавно я пытался перетащить фрагмент ролика в AS3, но у меня возникли проблемы с ударами тестов, у кого есть какие-то идеи? Чтобы уточнить, проблема заключается в том, что когда мувиклипы попадают в объект теста перетаскивания, они не выполняют функцию gotoframe(). initDrag() добавляет слушателей действий: MOUSE_DOWN на объект MOUSE_UP на сцене, так что не имеет значения, если вы от объектаПеретаскивание видеороликов в Action Script 3
endDrag() удаляет слушатели действий; называем это (для каждого объекта), прежде чем перейти к другому кадру
startADrag() создайте прямоугольник, внутри которого объект может быть перетаскиваются (в этом случае этап) вызова startDrag() на объекте
stopADrag() call stopDrag() для объекта из объекта currentObject (но только если currentObject не является нулевым).
var currentObject:MovieClip = null;
initDrag(block1);
initDrag(block2);
initDrag(block3);
initDrag(block4);
function initDrag(obj:MovieClip)
{
obj.addEventListener(MouseEvent.MOUSE_DOWN,startADrag);
stage.addEventListener(MouseEvent.MOUSE_UP,stopADrag);
}
function endDrag(obj:MovieClip)
{
obj.removeEventListener(MouseEvent.MOUSE_DOWN,startADrag);
stage.removeEventListener(MouseEvent.MOUSE_UP,stopADrag);
}
function startADrag(e:MouseEvent):void
{
currentObject = (MovieClip)(e.target);
var rect:Rectangle = new Rectangle(0,0,stage.stageWidth - currentObject.width,stage.stageHeight - currentObject.height + 100);
currentObject.startDrag(false,rect);
}
function stopADrag(e:MouseEvent):void
{
if (currentObject != null)
{
currentObject.stopDrag();
}
}
if(block1.hitTestObject(dragtest)){
gotoAndStop("lose");
}
if(block2.hitTestObject(dragtest)){
gotoAndStop(27);
}
if(block3.hitTestObject(dragtest)){
gotoAndStop("lose");
}
if(block4.hitTestObject(dragtest)){
gotoAndStop("lose");
}
благодарит за любые советы или ответы.
Ваш код перетаскивания выглядит правильно, не могли бы вы рассказать о проблеме с помощью тестов на попадание? – Iggy
@Iggy hitTestObject не обнаруживает и не меняет рамку. Поэтому, когда я перетаскиваю мувиклип на объект dragtest, он должен изменить кадр на «потерять» или 27 – Trows
Ну, для одного вы должны поместить все ваши операторы if внутри цикла событий. – Iggy