Как перейти к следующему кадру после удаления всех объектов - AS3 - PullRequest
0 голосов
/ 06 февраля 2019

Я пытался найти это, но не нашел правильного ответа.

У меня есть скрипт перетаскивания.и ищу способ перехода к следующему кадру после сброса всех объектов в цель

help.

import flash.events.MouseEvent;
import flash.display.DisplayObject;

var objectoriginalX:Number;
var objectoriginalY:Number;

blue.buttonMode = true;
blue.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
blue.addEventListener(MouseEvent.MOUSE_UP, dropObject);					  

red.buttonMode = true;
red.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
red.addEventListener(MouseEvent.MOUSE_UP, dropObject);			

green.buttonMode = true;
green.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
green.addEventListener(MouseEvent.MOUSE_UP, dropObject);			

function pickupObject(event:MouseEvent):void
{
	event.target.startDrag();
	event.target.parent.addChild(event.target);
	objectoriginalX = event.target.x;
	objectoriginalY = event.target.y;
}

function dropObject(event:MouseEvent):void
{
	event.target.stopDrag();
	var matchingTargetName:String = "target" + event.target.name;
	var matchingTarget:DisplayObject = getChildByName(matchingTargetName);
	if(event.target.dropTarget != null && event.target.dropTarget.parent == matchingTarget)
	{
		event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
		event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
		event.target.buttonMode = false;
		event.target.x = matchingTarget.x;
		event.target.y = matchingTarget.y;
	}
	else
	{
		event.target.x = objectoriginalX;
		event.target.y = objectoriginalY;
	}
}

1 Ответ

0 голосов
/ 07 февраля 2019

Я не совсем уверен, что вы подразумеваете под «следующим кадром», но вы наверняка могли бы сделать это с помощью простого счетчика.Добавьте переменную класса:

private var counter:int=0;

Как я вижу из вашего кода, у вас есть 3 объекта (красный, зеленый, синий) - теперь просто увеличивайте переменную счетчика каждый раз, когда вы успешно удаляете объект.Если он достиг определенной суммы (в данном случае 2), «перейти к следующему кадру».

if(event.target.dropTarget != null && event.target.dropTarget.parent == matchingTarget)
    {
        event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
        event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
        event.target.buttonMode = false;
        event.target.x = matchingTarget.x;
        event.target.y = matchingTarget.y;
        counter++;
        if(counter==2)
        {
            // go to next frame
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...