Форум 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=80034)

World Architect 20.05.2006 19:20

Быстрый поиск мувиков под любой точкой
 
Здравствуйте! Мне необходимо тащить мышкой объект удлиненный и похожий на такой:
Код:

>------------->
Мышкой можно тащить за любую точку объекта. При этом по бокам / в разных местах флэша торчат такие вещи:
Код:

=======|>                        >|=======

=======|>                        >|=======

=======|>                        >|=======

=======|>                        >|=======

Так надо чтобы концы переносимого объекта ловили бы статичные фиговины на карте. Ну похоже на то как мы руками вилку в розетку пихаем. При переносе я отслеживаю радиус вокруг "вилок" объекта в 5 точек и ищу "розетку", чтобы в нее вставить "вилку".
Сейчас это сделано как перебор объектов в _root, но тормозит немеренно, т.к. объектов море. Как это можно сделать быстрее??

Прмечание: размер таскаемого обекта не совпадает с расстоянием между розетками, т.е. потом я его удлиняю. М.б. по типу такого:
Код:

=======|>        |---------->>|=======

=======|>        |          >|=======

=======|>        |          >|=======

=======|>>--------|          >|=======

Но это уже моя забота :) Главное как под любой точкой на флэше определить объекты под ней МАКСИМАЛЬНО быстро. Может флэш хранит массивчик двумерный... Я не знаю... Помогите....

Beta-tester 20.05.2006 22:17

А свой масивчик координат завести, а потом вычислить делая поправки на радиус(вобщем при желании можно исхитрится самому).
Это тоже может время занять, но не столько, сколько перебор!

World Architect 20.05.2006 23:54

Свой делал... Я вообще делаю как...
Есть классы, каждый из который занимается своим делом: один - изменяет альфу с X на Y, второй - организует цикл, третий - очередь, а четвертый - движение мышкой. И допустим у меня есть класс типа (пишу примерно):

Код:

class Krug extends MovieClip {
  var moving : Mover = new Mover(this);

 ...

  onMouseDown() {
    if(мыша внутри) Mover.goAction();
  }
  onMouseUp() {
    if(мыша внутри) Mover.stopAction();
  }

}

И так можно для любого объекта. Где Mover - класс, организующий перемещение любого объекта. Также сделана и склейка объектов. Т.е. просто внутрь нужных объектов вставляется экземпляр класса.
При этом про запуске метода goAction() устанавливается callback функция на интервал времени... доп на 10 мсек... Т.о. ваш класс мувика ни о чем не заботится. Просто вызывает goAction и все. И через каждые 10 мсек срабатывает классы движения с склейки. Если мыша переместилась, класс движения переместит мувик, а класс склейки проверит окрестность в 5 точек и приклеит объекты.

Все переносимые объекты я добавляю в массив (как Вы и писали), но все равно тормозит...Может просто много функций работает по интервалам? Хотя на примерку только две - перенос и склейка... Не понимаю... :(

Nirth 20.05.2006 23:55

прочитайте правила и измените пост пожалуйста

World Architect 21.05.2006 00:00

Цитата:

Сообщение от Nirth
прочитайте правила и измените пост пожалуйста

Если Вы про раздел "Код", то в свое оправдание скажу что не знаю, как по другому вставить кучу пробелов для сдвига, HTML всегда урежет пробелы до одного. Если не поэтому, то напишите мне, я не понимаю, что не вяжется с правилами.

0xFFFFFF 21.05.2006 00:24

Цитата:

Сообщение от World Architect
Есть классы, каждый из который занимается своим делом: один - изменяет альфу с X на Y, второй - организует цикл, третий - очередь, а четвертый - движение мышкой.

во технология.. скоро в отдельные классы будут пихать каждый кусочек кода.. каждая функция классом станет..

Nirth 21.05.2006 00:26

Цитата:

во технология.. скоро в отдельные классы будут пихать каждый кусочек кода.. каждая функция классом станет..
если человеку так удобнее почему бы и нет?
вообще паттерн комманда подразумевает под собой всего один публичный метод ( execute() ), так что в одной функции на класс, не вижу ничего удивительного.

0xFFFFFF 21.05.2006 00:29

а с тобой я не разговариваю.

World Architect 21.05.2006 01:48

Цитата:

Сообщение от Белая
во технология.. скоро в отдельные классы будут пихать каждый кусочек кода.. каждая функция классом станет..

Что плохого в том что добавляя всего одну -две строчки в класс мувика вы снабжаете его всем необходимым для того чтобы его можно было перемещать? Или еще для чего... ИМХО это удобно, если у вас впереди десятка два проекта... Есть общая библиотека и ей можно пользоваться

0xFFFFFF 21.05.2006 01:52

ничего, это я так.. представила десяток классов по 3-5 строк в каждом..


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

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