Просмотр полной версии : DragOver: стопор объекта при трэйсе
BM Senya
20.03.2007, 19:10
Беру объект навожу на другой объект и при пересечении обоих первый в пределах второго стопорится так, что его уже не забрать и не сдвинуть обратно. Подскажите где дописывать в Drag' е или хиттэсте. Заранее большая благодарность Вам за помощь.
Терминатор
20.03.2007, 19:34
Беру объект навожу на другой объект и при пересечении обоих первый в пределах второго стопорится так, что его уже не забрать и не сдвинуть обратно. Подскажите где дописывать в Drag' е или хиттэсте. Заранее большая благодарность Вам за помощь.
Я во флеше новичок, но сталкивался с тойже проблемой.
Допустим у нас есть обект "А" и объект "B". Объкт "А" при пересечении объекта "B" должен останавливаться, а при уходе от обекта "A" продолжать путь... В коде это должно выгледеть так:
if(A.hitTest(B)) //проверяем столкновение объектов "А" и "В".
{........;} // пишешь действие, (остановку обекта "А")
else { ......;} // если действие напроисходит, тоесть обект "А" вышел из обекта "В" то пусть продолжает путь.
Если сам, что напутал:umnik2: , извини.... Но помойму все правельно
Беру объект навожу на другой объект и при пересечении обоих первый в пределах второго стопорится так, что его уже не забрать и не сдвинуть обратно. Подскажите где дописывать в Drag' е или хиттэсте. Заранее большая благодарность Вам за помощь.
а разве drag и hitTest как то связаны?
если проблема в коде то я не вижу кода
BM Senya
21.03.2007, 13:16
В чём и проблемма, я не знаю кода. Думал что для этого и нужно связать Drag hitTest а для фиксации объекта в определённом месте рабочего поля
нужно задавать координаты. Но как даже представления не имею!
заранее массивчик организуй для координат фиксации и как только
обьект будет близко к точке из массива сразу ставить на место
и отменять драг, даже хиттеста не надо
BM Senya
21.03.2007, 14:43
А в коде можете выразить, если Вам не трудно.
BM Senya, а вы сами учить язык не собираетесь?
BM Senya
21.03.2007, 15:37
Да, но мне очень необходимо это сегодня сделать.а с вашей помощью я его выучу быстрее. Очень Вас прошу напишите код. Я думаю для Вас это пара минут.Просто допишите нужное, прошу Васb1.onPress = function() {
this.startDrag();
};
b1.onRelease = function() {
this.stopDrag();
if (this.hitTest(c1)) {
var my_color:Color = new Color(c1);
var myTransform:Object = my_color.getTransform();
myTransform = { ra: 80, ba: 80, aa: 60};
my_color.setTransform(myTransform);
}
}; Заранее благодарю за помощь.
Да, но мне очень необходимо это сегодня сделать.
Что это может быть такое, когда нужно сегодня, а вы ничего не знаете? Ждите, когда напишут и потратят свое время на это.
BM Senya
21.03.2007, 16:34
А если Вам скину исходник, Вы сможете подправить?
давно пора было
а то заново никто не напишет
BM Senya
27.03.2007, 15:14
Вернусь всё же к этой теме. Ну не могу понять как застопорить при наведении обьект в кокой-то либо точке. Прошу подскожите. Что куда нужно вписывать. У меня не прикрепляется файл поэтому вставил кодmc1.onPress = function() {
this.startDrag();
};
mc1.onRelease = function() {
this.stopDrag();
if (this.hitTest(c1)) {
var my_color:Color = new Color(c1);
var myTransform:Object = my_color.getTransform();
myTransform = { ra: 80, ba: 80, aa: 60};
my_color.setTransform(myTransform);
}
};
mc1 это обект который должен застопорится при пересечении с объектом С1 и в его пределах.
у меня дак код работает замечательно
если вы еще хотите дополнительно его останавливать то
mc1.onEnterFrame=function(){
if(this.hitTest(c1)){this.stopDrag()}
}
BM Senya
28.03.2007, 14:52
CorC, Вы меня не много не так поняли. Мне сложно объяснить, но это должно выглядеть примерно так. Берём к примеру мувик (круг допустим) и наводим к другому кругу, и как только он соприкасается с ним автоматически (при отпускании (onRelease)) заскакивает в него(ровно в середину круга), и его нельзя уже взять, перетащить и т.д. Надеюсь я хоть как-то доступно объяснил.)))
ну дак а в чем проблема тогда?
mc1.onRelease = function() {
this.stopDrag();
if (this.hitTest(c1)) {
this._x=c1._x+(c1._width-this._width)/2;
this._y=c1._y+(c1._height-this._height)/2;
}
};
BM Senya
28.03.2007, 16:31
Спасибо огромное! А вот если таких mc несколько, и для каждого свой круг, как должен выглядеть код, чтоб при сопрекосновении всех кругов происходил трэйс (к примеру переход на другой кадр)
BM Senya
30.03.2007, 11:02
Прошу Вас помогите наконец разобраться с этой проблеммой!
1. апать нехорошо
2. пиши счетчик и при каждом хиттесте инкрементируй его
потом когда оно будет достаточно иди куда надо...
BM Senya
30.03.2007, 11:09
Плиз CorC напиши код я не чё не понял!!!))))
var Count=10;
for(var i=0;i<Count;i++){
_root["mc"+i].onRelease = function() {
this.stopDrag();
if (this.hitTest(c1)) {
if(!--Count){
_root.gotoAndPlay("win");
}
this._x=c1._x+(c1._width-this._width)/2;
this._y=c1._y+(c1._height-this._height)/2;
}
}
};
10 объектов mc0, mc1 ... mc9 всех покласть с с1 и будет счастье!
BM Senya
30.03.2007, 11:19
Огромная благодарность!! Выручаешь!!!
Блин, я тебя запарил!)) Чёто у меня не работает! Можешь исход кинуть, а то у меня ошибку выдаёт не могу прикрепить ни чё!!!!Блииин!!!:confused:
У меня просто много мувиков "с" с1,с2 и т.д. и я не пойму для каждого что ли писать?
сохраняй для каждого мувика свой "c"
примерно как тут http://flasher.ru/forum/showpost.php?p=626483&postcount=4
потом вызывай в хиттесте не "с1" а "p" как в примере
вы со своей задачей уже месяц нас мучаете?
может пора начать скрипт изучать и алгоритмы?
готовые работы делаются в разделе "вакансии"
потому исходник делать не буду
и так разжевал как для младенца...
BM Senya
30.03.2007, 13:46
Ну прошу Вас скиньте исходник, :umnik2:
и где раздел "вакансии"?
BM Senya
30.03.2007, 15:16
Прошу Вас CorC? если Вам не трудно плизз скиньте исходник!
http://flasher.ru/forum/forumdisplay.php?f=75
если освобожусь седня наваяю
вы бы и сами смогли бы
тем более что обо всем уже написано
BM Senya
30.03.2007, 15:49
Я не пойму куда вставлять startDrag в коде, который Вы написали в 20-ом посте этой темы. При тэсте ошыбки выбивает.
больше ничего тут не спрашивайте...
на все по теме было отвечено раз 20
BM Senya
30.03.2007, 16:30
Огромнейшее спасибо! Всё CorC последнее, и я больше не гружу тупостью и незнанием. Куда для каждого mc вставить вот это:
var my_color:Color = new Color(c);
var myTransform:Object = my_color.getTransform();
myTransform = { ra: 80, ba: 80, aa: 60};
my_color.setTransform(myTransform);
Чтоб при наведении dragstop для ткаждого кружка:
И ВСЁ!
if (this.hitTest(c)) {
if (!(--Count)) {
trace("win");
}
this._x = c._x+(c._width-this._width)/2;
this._y = c._y+(c._height-this._height)/2;
var my_color:Color = new Color(c);
var myTransform:Object = my_color.getTransform();
myTransform = {ra:80, ba:80, aa:60};
my_color.setTransform(myTransform);
this.onPress=null; //что б нельзя обратно вытащить было
}
BM Senya
30.03.2007, 16:46
Я так делал не выходит!!!!
а не. я ошибку сделал. всё разобрался наконец. фуух всех уже нагрузил.)))
Огромная благодарность to:CorC и другим флешерам за участие.
BM Senya
02.04.2007, 12:49
CorC, извините, это сново я.
При повторном хит тесте засчитывается за пересечение
получается trace раньше чем надо
нельзя квадрат затаскивая в круг (в вашем исходнике) как-нибудь блокировать,
чтоб встал и всё нельзя его больше брать
предпоследняя строка в последнем моем коде разве этого не делает?
там даже коментарий я специально оставил, потому что
я этот вопрос предусмотрел...
BM Senya
02.04.2007, 12:58
Да точно
туплю я)))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.