難以製作一個簡單的遊戲,涉及用彩色瓷磚覆蓋網格。我已經使用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