격자가 채색 된 타일로 덮는 간단한 게임을 만드는 데 어려움이 있습니다. 배열을 사용하여 드래그 앤 드롭 기능을 설정했지만 그리드의 위치에 쉽게 스냅 할 수있는 방법을 찾을 수 없습니다. 격자의 위치를 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 객체에 해당합니까? 코드의 인스턴스를 하나만 사용하여이 작업을 수행 할 수 있습니다. 동일한 라이브러리 객체의 모든'greenTables' 인스턴스가 있습니까? – BadFeelingAboutThis
그리드에 대해 좀 더 설명 할 수 있습니까? (보이는가, 몇개의 수평선/수직선, FlashPro로 생성해야 할까? 아니면 코드로 할 수 있는가?) - 대부분의 경우 - 그리드와 객체가 배경 그래픽과 일치하지 않고 수학적으로 배치되지 않은 경우 이 모든 것을 매우 적은 수의 코드로 처리 할 수 있습니다. – BadFeelingAboutThis