难以制作一个简单的游戏,涉及用彩色瓷砖覆盖网格。我已经使用Arrays来建立拖放功能,但无法找到方法使它们轻松捕捉到网格上的位置。我已经将网格中的位置制作成名为snapA1到snapJ10的影片剪辑,全部由10个字母组成的实例名称进行匹配,但这些剪辑已从阵列中移除,因为它们不需要移动。我一直存在的问题是,我使用的任何函数只能用于捕捉单个位置。基本上我只是寻找一个简短的手,让两个或更多的对象组相互对齐,最好不用暴力代码,我哄你不到,20,000个相同代码的实例。下面 是我的代码,到目前为止,只允许一个捕捉目标位置使用阵列将多个对象捕捉到多个位置
import flash.events.Event;
import flash.events.MouseEvent;
var greenArr:Array = new Array
(greenTablet1, greenTablet2, greenTablet3, greenTablet4, greenTablet5,
greenTablet6, greenTablet7, greenTablet8, greenTablet9, greenTablet10,
greenTablet11, greenTablet12, greenTablet13, greenTablet14, greenTablet15,
greenTablet16, greenTablet17, greenTablet18, greenTablet19, greenTablet20);
for (var i1:uint =0; i1 < greenArr.length; i1++) {
greenArr[i1].addEventListener(MouseEvent.MOUSE_DOWN, dragG);
greenArr[i1].addEventListener(MouseEvent.MOUSE_UP, dropG);
}
function dragG(event:MouseEvent):void {
event.currentTarget.startDrag();
}
function dropG(event:MouseEvent):void {
event.currentTarget.stopDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, stopMotionG1);
function stopMotionG1(evt:MouseEvent):void {
snapInPlaceG1();
}
function snapInPlaceG1():void {
if (snapA1.hitTestObject(greenTablet1)) {
greenTablet1.x = snapA1.x;
greenTablet1.y = snapA1.y;
}}
因此要弄清楚,每个greenTableX对应1个snapAX对象?您只能使用代码的1个实例执行此操作。同一个库对象都是你的'greenTables'实例吗? – BadFeelingAboutThis
你能描述一下你的网格吗? (是否可见,需要在FlashPro中创建多少水平/垂直线,还是可以在代码中创建?) - 最有可能 - 除非您的网格和对象与某些背景图形相对应,并且不仅仅是数学定位你可以做所有这些只需几行代码。 – BadFeelingAboutThis