Просмотр полной версии : Не получается перемещение объектов по координатам
katrisha
04.09.2008, 13:16
Добрый день!
Проблема с перетаскиванием объектов, помогите пожалуйста разобраться!
Можно ли сделать так:
исходник (hr-dannyh)
1. Перетаскиваются ВСЕ объекты ( это просто, это у меня получается).
2. Те, которые не подходят по смыслу просто отпрыгивают обратно ( вот тут как раз проблема).
исходник (2-umet-2-2):
1. Перетаскиваются ВСЕ объекты.
2. Если объект попадает не в свою ячейку, то он прыгает обратно. Если в
свою - остается там жить ( наверное здесь надо задавать координаты? что-то никак не дотумкаю как сделать...)
Очень надеюсь на вашу помощь!
Обычно в таких случаях используют не сравнение координат, а hitTest();
Посмотрите в хелпе, у этого метода есть два варианта - проверка, пересекается ли клип А с клипом В, и другой - пересекает ли клип А точку с заданными координатами.
При отпускании таскаемого клипа делаете проверку - пересекает ли он положенную ему ячейку. Если нет - то возврат, если да - то упаковка. Удачи.
katrisha
05.09.2008, 13:34
Спасибо большое! нашла такое в хелпе, стала разбираться. даже получилось кое что.
Но есть два вопроса:
1. Как можно сделать чтобы "status_txt" писал по русски верно и не верно, а не false и true?
2. Как применить подобное действие для других объектов? У меня в примере таких объектов три, а запустить я смогла только один...
Посоветуйте пожалуста!
Исходник прилагаю.
status_txt.text = this.hitTest(bab)? 'верно':'не верно';
Зачем 3 оденаковые функции? Таким примером ты только испортиш автору жизнь. Дал готовый код хотя и кривой o_O.
Зачем тут апдейт афтер эвент? Хит тест каждой картинки идет только пока она тащится. Т.е не правильно не вылизет пока ты не заташиш неправильную картинку в арею и не начнеш ташить правильную :)
На основе этого можно сделать еше тысячи ошибок и в итоге все начать сначала.
P,S Ладно тогда в функции лишняя праверка:/
согласен... ща испарвлюсь ;)
А если положить скажем бабку в арея бабка, а патом взять поезд. То что будет в текстовом поле арея бабка?)
А если положить скажем бабку в арея бабка, а патом взять поезд. То что будет в текстовом поле арея бабка?)
ну Вы уж совсем хотите все на "блюдечке с голубой коемочкой", пускай человек немного голову поломает, разберется - если не получится поможем :)
Вы бы вместо критики свой вариантик запропонували, может и такие начинающие как я чему-нибудь да научились бы...
katrisha
05.09.2008, 18:07
Спасибо большое, файл скачала сейчас буду разбираться.
katrisha
07.09.2008, 21:30
На самом деле получилось, спасибо! Но все же мозги у меня трудно под программирование затачиваются, рисовать то это одно...
Вообщем вовросы все таки возникли.
Скажем если объектов не три, а пять? Или четыре? Или еще больше? У меня есть задание где их даже шесть... Что делать в таком случае? Вот я не очень поняла что такое
source_txt
target_txt
provider_txt
То есть для трех объектов понятно. А что писать для четвертого и пятого? Вот в подобном примере?
Чтобы присвоить программно текст какому-то текстовому полю,
нужно обратиться к нему по имени (задается это имя в панели "Properties"), так вот source_txt, target_txt, provider_txt это имена текстовых полей в которых мы пишем "правильно", "не правильно"...
Попробуйте альтернативный вариант:
_root[this._name + "_txt"].text = "правильно";
var txt:TextField = _root[this._name + "_txt"];
txt.text = "правильно";
Не будеш же ты везде писать _root[this._name + "_txt"]? Зачем плохому учиш)
katrisha
08.09.2008, 13:09
Вот это классно, все понятно, спасибо большое-пребольшое!!! Доделала там термометр. Сама :) Сейчас попробую применить это для остальных примеров, где больше или меньше объектов.
Есть еще один вопрос правда, можно я его задам, как сделаю заготовку для исходника?
...Не будеш же ты везде писать _root[this._name + "_txt"]? Зачем плохому учиш)
Что ты за человек такой?
Ты бы свои замечания в код вставил и здесь полностью для человека привел...да и расписал бы почему и менно так а не иначе...
Я сам еще учусь, а ты стебаешься без конца
Ты если помочь хочешь - так помоги, а если просто по умничать, то это лучше в другом месте...
Для katrisha:
замените весь код на следующий
function isCorrect():Void {
var tCorrect:TextField = _root[this._name + "_txt"]; // создаем ссылку на текстовое поле
this.startDrag();
this.onEnterFrame = function() {
if (this.hitTest(_root["area_" + this._name])){
tCorrect.text = "правильно";
} else {
tCorrect.text = "";
}
};
}
bar.onPress = mikr.onPress = lin.onPress = tel.onPress = bar.onPress = isCorrect;
bar.onRelease = mikr.onRelease = lin.onRelease = tel.onRelease = bar.onRelease = function() {
this.stopDrag();
delete this.onEnterFrame;
};
Какая-то странная задачка у Вас - таскать картинку, пока не появится слово "Правильно", и тогда отпускать? Разве проверка правильности не после отпускания должна делаться?
Какая-то странная задачка у Вас - таскать картинку, пока не появится слово "Правильно", и тогда отпускать? Разве проверка правильности не после отпускания должна делаться?
Можно конечно и так, но с точки зрения юзабельности это лишнее действие для пользователя: поднеси - отпусти - если не правильно, то схвати - утащи - возьми другой - поднеси и т.д.
удобнее же когда просто поднес и сразу видно отпускать или тащить дальше, не так ли?
Для разработчика конечно это лишние телодвижения :), но для пользователя это поднимает дружественность интерфейса и удобство
katrisha
08.09.2008, 15:44
Вот еще пример, он подобный, но тут никак не соображу как изменить тект на объект. То есть смайлик должен меняться в случае правильного подбора текста...
Посмотрите пожалуйста
Чёто я еще больше запутался) katrisha, объясните смысл происходящего пожалуйста. Я думал это загадка, а выходит какаято инструкция? Что должно происходить, опишите задачу. Из исходника совершенно непонятно, чего требуется достичь.
Посмотрел исходник, прочитал сообщение и ничего не понял что именно Вы хотите? :)
Чтоб менялись смайлики удобнее сделать в клипе каждого смайла по два кадра в первом "угрюмый" во втором "улыбающийся" и потом в зависимости от нужных условий
имя_смайла.gotoAndStop(1) - прыжок на 1 кадр смайла - не улыбается
или
имя_смайла.gotoAndStop(2) - прыжок на 2 кадр смайла - улыбается
katrisha
09.09.2008, 13:18
Я попробую.
А хочу я вот что - когда тянется правильное слово - смайлик улыбается, если неправильное - то он недоволен. Я сделала два слоя, на одном разместила все улыбающиеся смайлики, на другом все грустные. Просто наверно я очень шаблонно мыслю, пыталась сделать все по образу и подобию, как в случае с текстовыми блоками правильно-пеправильно.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.