【问题标题】:How do i goto next frame after drop all the objects - AS3丢弃所有对象后如何进入下一帧 - AS3
【发布时间】:2019-06-29 23:48:18
【问题描述】:

我试图搜索这个但没有找到正确的答案。

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

帮助。

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

【问题讨论】:

  • 那么,有什么问题呢?正确的放置是从下方开始的第二个 {...} 块。 gotoAndStop(...) 命令是将播放头移动到另一帧。您可能需要的只是计算正确丢弃了多少对象并在计数 2 上执行操作。

标签: actionscript-3 flash


【解决方案1】:

我不太确定你所说的“下一帧”是什么意思,但你肯定可以用一个简单的方法来做到这一点 柜台。 添加类变量:

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

【讨论】:

    猜你喜欢
    • 2013-01-03
    • 2014-12-12
    • 1970-01-01
    • 2011-01-07
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多