放置所有对象后如何转到下一帧-AS3

时间:2019-02-06 04:27:41

标签: actionscript-3 flash

我试图进行搜索,但是找不到正确的答案。

我有这个拖放游戏脚本。 并且在将所有对象都放到目标中之后正在寻找进入下一帧的方式

帮助。

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 :(得分:0)

我不太确定“下一帧”是什么意思,但是您可以通过简单的操作来确定 计数器。 添加一个类变量:

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
        }
    }