![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 6
|
ПРОБЛЕМА:
Корзина + комок смятой бумаги + действие Drag = комок "прячется" за корзину, имхо во первых слои этих двух предметов так расположены, а во вторых кроме как: onPress = function() {
this.startDrag();
};
onRelease = onReleaseOutside=function () {
this.stopDrag();
};
ИТОГ: Корзина + комок смятой бумаги + действие Drag = комок исчезает, НО, где угодно, и в корзине, и над, и перед, и рядом.. (ошибка понятна - комку по умолчанию предлагалось именно исчезнуть, стать невидимым, но в каком конкретно месте - про это не было и слова кода). ЗАДАЧА: Корзина + комок смятой бумаги + действие Drag = комок после таскания его мышкой, "удаляется" ИМЕННО в корзине и нигде более. БЛАГОДАРНОСТЬ: От "in4core" поступило предложение - Сделать МАСКУ клип поверх корзины (невидимую). И с помощью "hitTest" проверять на совпадение с этим клипом. P.S. Это конечно хорошо, но не решает моей проблемы... У меня не хватает знаний для применения результатов hitTest'а. Мне нужен конкретный код - решающий мою проблему, и по возможности адекватное его описание - что и куда, дабы не тупо его вставить в рабочее поле и забыть, но и понять как он работает. Я только учусь! |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 6
|
Hauts thx! Но.. если чессно, ниче не понял.. создать "маску" корзины и туда прописать код или что? Мне действительно важен не сам результат, а именно понимание того, что я делаю.. Прости, не мог бы ты описать подробнее каждое действие после this.stopDrag(); Если не затруднит..
Последний раз редактировалось xpr0; 04.04.2010 в 15:15. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 6
|
Я что, по твоему идиот? Зачем же глумиться? Я не просил "перевода" с английского, я просил адекватное пояснение что, и куда. Я так понимаю, здесь люди, которые что то знают неохотно общаются с теми, кто только начинает.. Ну что ж, спасибо и на этом. Извините что потревожил. Парень неглупый, своим мозгом дойду.
|
|
|||||
|
Цитата:
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Действия должны быть написаны в кадре перетаскиваемого клипа. То есть, заходим в клип для его редактирования, выделяем первый кадр, и пишем действия.
Тут, наверное, все понятно. Как только нажали на мувиклип, он начинает двигаться за мышкой. Можно, кстати, поставить startDrag(false), тогда клип не будет центроваться относительно курсора. onRelease = onReleaseOutside=function () { this.stopDrag(); if(this.hitTest(maskClip)){ this._visible = false; // На корзине } else { // Не на корзине } }; Можно заменить на тогда эта функция будет отрабатываться каждый раз, когда отпускаем кнопку мышки, вне зависимости от того, где нажали. Внутри функции мы определяем, что же, все-таки произойдет по наступлению событий. В первую очередь, раз мышку отпустили, нам уже не надо таскать клип за курсором. Поэтому пишем А дальше нужно проверить, положили ли мы клип на корзину, или же нет. Для этого мы ставим условие if, в котором пишем: Функция hitTest возвращает значение true, если this (в данном случае это перетаскиваемый клип) пересекается с клипом, у которого instance name "maskClip". Пересечения отрабатываются по габаритным размерам клипов, как если бы клипы были прямоугольниками. Если клип - окружность, то hitTest вернет true, в случае, если другой клип "задевает" уголок прямоугольника, описывающего эту окружность. Клип, с которым проверяется пересечение, должен иметь название, чтобы в коде с ним можно было работать, поэтому в поле instance name, когда этот клип выделен, нужно написать maskClip (или любое другое название). Дальше по коду: если hitTest возвращает true, то значит, что условие для if верное, значит запустится блок кода, который сразу после if. В данном случае Меняя свойство _visible у перетаскиваемого клипа на значение false, мы указываем флэш-плееру, что этот клип не нужно показывать, он исчезает с экрана, но остается на сцене (то есть он не удаляется). В случае, если условие в if не выполняется, то есть hitTest возвращает false (объекты не пересекаются), запускается блок кода, который стоит после else.
__________________
hauts.ru Последний раз редактировалось Hauts; 05.04.2010 в 11:33. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 6
|
Hail to the Hauts! Огромное спасибо, за столь точные разьяснения! Всё наконец то стало понятно!
P.S. Всё здорово, только "клип" так и НЕ удаляется в "корзине" ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|