Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   действие при нажатии (http://www.flasher.ru/forum/showthread.php?t=206444)

Youngflasher 04.02.2014 14:39

действие при нажатии
 
Помогите пожалуйста!
Есть квадрат, разбит на 4 четверти, мувик находится в одной из четвертей.
Как сделать так, чтоб при перетаскивании его в другую четверть, тебя перекидывало в другой кадр.
3 четверти - 3 разных кадра соответственно.
Код который использую для перетаскивания.
Код AS1/AS2:

a.onPress = function() {
        a.startDrag();
};
a.onRelease = function() {
        a.stopDrag();
};


Sergey_A 04.02.2014 17:51

Во-первых, надо четко задать границы для startDrag - в соответствии с вашим квадратом, а чтобы запускать переход на другой кадр - разместите в каждой из четвертей по невидимому мувику и проверяйте событие пересечения с ними. (hitTest). Если хотите большой точности - размещайте несколько мувиков в каждой из четвертей, чтобы переход выполнялся, только если есть пересечение со всеми.

Youngflasher 04.02.2014 17:57

А вы можете, пожалуйста, в коде показать как это реализовать? на любом примере, с любыми координатами.
Спасибо большое!

Sergey_A 04.02.2014 18:59

Ну, если совсем просто, то что-то вроде: На сцене мувики t_drag и t1, в кадре код:
Код AS1/AS2:

t1._visible = false; //делаем мувик t1 невидимым
t_drag.onPress = function() {
        startDrag("t_drag", true, 140, 92, 383, 279); //по нажатию кнопки t_drag таскается за мышкой, не покидая определенной области
        this.onEnterFrame = function() {
                if (this.hitTest(t1)) {
                    stopDrag(); //если он пересекается с t1, то таскание прекращаем
                        delete this.onEnterFrame;
                        this._x = 255.95; //и возвращаем его на место
                        this._y = 180; //сюда же можно прописать и другие действия, например
                                      trace("УРА!!!!");
                        }
                }
        }
//по отпусканию кнопки мыши таскание тоже прекращаем
t_drag.onRelease =
t_drag.onReleaseOutside = function() {
        stopDrag();
        delete this.onEnterFrame;
        }

Остается прописать то же самое не только для t1, но и еще для любого нужного количества мувиков. Впрочем, проверять можно не только пересечение с мувиком, но и пересечени точки с определенными координатами (функция та же - hitTest), но с мувиками, ИМХО, нагляднее и проще.

Youngflasher 04.02.2014 19:26

Спасибо большое!
Очень помогли)


Часовой пояс GMT +4, время: 00:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.