![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2014
Сообщений: 27
|
Есть такая функция, которая отвечает за "прилипание" одних объектов к другим объектам (Frame[0] - Frame[17]), как сделать чтоб к уже занятой ячейке объект не прилипал, а прилипал, например, к следующей?
Помогите пожалуйста! function fun2 (e:MouseEvent):void { for(i = 0; i < 6; i++) { if(e.currentTarget.hitTestObject(Frame[i])) { e.currentTarget.x = X[0]; e.currentTarget.y = Y[i]; } else if(e.currentTarget.hitTestObject(Frame[i+6])) { e.currentTarget.x = X[1]; e.currentTarget.y = Y[i]; } else if(e.currentTarget.hitTestObject(Frame[i+12])) { e.currentTarget.x = X[2]; e.currentTarget.y = Y[i]; } } } |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Скорее всего, только мне не понятно о чем идёт речь. Можете подробно рассказать, что Вы хотите в итоге получить?
|
|
|||||
|
Регистрация: Jan 2014
Сообщений: 27
|
Извините
// элементы массива Fact перетаскиваются на области из массива Frame, // проверка происходит в функции fun2 //нужно чтоб на одно место прилипал только один элемент, //а другой, в случаи попадания, прилипал в другую свободную ячейку //массив элементов var Fact: Array = new Array(Fact_1, Fact_2, Fact_3, Fact_4, Fact_5, Fact_6, Fact_7, Fact_8, Fact_9, Fact_10, Fact_11, Fact_12); //массив полей на которые элементы перетаскиваются var Frame: Array = new Array(frame_01, frame_02, frame_03, frame_04, frame_05, frame_06, frame_07, frame_08, frame_09, frame_10, frame_11, frame_12, frame_13, frame_14, frame_15, frame_16, frame_17, frame_18); // массивы координат элементов Frame var X: Array = new Array(158, 471, 784); var Y: Array = new Array(88, 151, 214.95, 278.45, 341.95, 405.45); //цикл для всех элементов for(i = 0; i < Fact.length; i++) { Fact[i].addEventListener(MouseEvent.MOUSE_DOWN, fun1); Fact[i].addEventListener(MouseEvent.MOUSE_UP, fun2); } function fun1 (e:MouseEvent):void { e.currentTarget.startDrag(); } function fun2 (e:MouseEvent):void { for(i = 0; i < 6; i++) { if(e.currentTarget.hitTestObject(Frame[i])) { e.currentTarget.x = X[0]; e.currentTarget.y = Y[i]; } else if(e.currentTarget.hitTestObject(Frame[i+6])) { e.currentTarget.x = X[1]; e.currentTarget.y = Y[i]; } else if(e.currentTarget.hitTestObject(Frame[i+12])) { e.currentTarget.x = X[2]; e.currentTarget.y = Y[i]; } } e.currentTarget.stopDrag(); } |
|
|||||
|
Я, конечно, понял логику, но код ужасный и странный. Чтобы реализовать прилипание в вашем кодУ, необходимо принять вашу логику и думать по ней, что убийственно, так как код просто ужасен
Поэтому если кто-то и согласится помочь, то он напишет всё с нуля и в классах.
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Jan 2014
Сообщений: 27
|
SuriTheAngel, Извините, по другому пока не умею.
alexcon314, Вы не могли бы подробнее объяснить? |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|