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

Leezard 02.01.2007 16:04

Ой , с бодуна фигурные скобки не заметил :wacko:
Всех с наступившим :yahoo:
P.S. Хотя они все равно не там стоят, так что все равно не понятно к чему относятся параметры :) , всегда делал
Код:

    _root["snow" + x]. _x=Math.random()*150;
        ...


etc 02.01.2007 16:10

Leezard, лучше так не делай :)
attachMovie возвращает ссылку на созданный клип, зачем извращаться с квадратными скобками, я не понимаю…

Leezard 02.01.2007 16:16

Ну наверное затем, что данное обращение используется везде и в функции создания объектов и затем в функциях управления этими объектами, из любого места всегда и везде. Просто как бы проще всегда применять однотипную структуру. А чем плохо?
Кроме того если , в дальнейшем буду управлять этим снегом, не используя твины (ну вдруг), я просто скопирую написанное:
Код:

_root["snow" + x]. _x=Math.random()*150;
...

и задам приращения:
Код:

_root["snow" + x]. _x+=... ;
...

А когда придет время растаться со снегом, опять скопирую:
Код:

_root["snow" + x].removeMovieClip();
И таким образом сэкономлю немного времени.

etc 02.01.2007 16:31

Ты меня не понял, я об этом:
Код:

var mc = _root.attachMovie(…
mc._x = …

Зачем этот изврат с _root["snow"+x]?

Leezard 02.01.2007 16:55

А, ну так это суть одно и тоже :)
Я имею ввиду что чаще удобней задание параметров "выносить за скобки " создания объекта. Мне по крайней мере. Но опять же если я активно, буду управлять созданным динамичным объектом, который к тому же является частью двумерной конструкции, я пишу со скобками. Например при создании локации в игре, все находится в мувике контейнере создавая его использую ссылку:
Код:

var mc = _root.attachMovie(…
mc._x = …

Оперирование огромным количество параметров и функций контейнера значительно упрощается, но...
Когда мы начинаем в контейнере создавать тайлы, запись типа:
Код:

_root.mc["tile" +x+"_"+y]. _x=...
Значительно улучшает понятийность происходящего, тем более если в одном цикле или функции нам необходимо еще совершать какие-то действия или менять параметры соседних тайлов (объектов):
Код:

_root.mc["tile" +x+"_"+y]. _alpha=100;
_root.mc["tile" +(x-1)+"_"+(y+1)]. _alpha=75;
_root.mc["tile" +(x)+"_"+(y+1)]. _alpha=75;
_root.mc["tile" +(x+1)+"_"+(y+1)]. _alpha=75;
...

В ЭТОМ гораздо сложнее запутаться :)

iNils 02.01.2007 17:05

Цитата:

Сообщение от Leezard
Код:

_root.mc["tile" +x+"_"+y]. _alpha=100;
_root.mc["tile" +(x-1)+"_"+(y+1)]. _alpha=75;
_root.mc["tile" +(x)+"_"+(y+1)]. _alpha=75;
_root.mc["tile" +(x+1)+"_"+(y+1)]. _alpha=75;
...

В ЭТОМ гораздо сложнее запутаться :)

Я запутался сразу же... В таких случаях имена лучше хранить в массивах.

Leezard 02.01.2007 17:21

Цитата:

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

_root.mc["tile" +10+"_"+10].
Иил например при обработке в циклах или функциях:
Код:

function func(x,y){
// Искомый тайл
_root.mc["tile" +x+"_"+y]._alpha=100
// Тайлы по кресту (изометрия)
_root.mc["tile" +(x-1)+"_"+(y)]._alpha=100
_root.mc["tile" +(x+1)+"_"+(y)]._alpha=100
_root.mc["tile" +(x)+"_"+(y-1)]._alpha=100
_root.mc["tile" +(x)+"_"+(y+1)]._alpha=100
// Тайлы по диагоналям (изометрия)
_root.mc["tile" +(x-1)+"_"+(y-1)]._alpha=100
_root.mc["tile" +(x-1)+"_"+(y+1)]._alpha=100
_root.mc["tile" +(x+1)+"_"+(y-1)]._alpha=100
_root.mc["tile" +(x+1)+"_"+(y+1)]._alpha=100

}

P.S.
В масивах храняться надстройки над тайлами - объекты, стены и прочее.

iNils 02.01.2007 17:29

Leezard, вы говорите не понимая о чем. Ваш подход это вчерашний день, про использование в коде _root я вообще молчу.

Leezard 02.01.2007 17:41

Цитата:

Сообщение от iNils
Leezard, вы говорите не понимая о чем. Ваш подход это вчерашний день, про использование в коде _root я вообще молчу.

iNils, использование в коде _root - это пример, не имеющий к теме никакого отношения. Вытек он из поста __etc
Код:

var mc = _root.attachMovie(…
:Остальная часть вашей фразы - очень аргументирована. :taunt:
Речь идет о методах задания параметров объектам. Я объяснял __etc, почему я использую квадратные скобки, приведя более или менее конкретный пример, когда это удобно. Поясните что вы считаете днем сегодняшним. Если вы уверены что в данном случае (построение изометрических тайлов) метод
Код:

mc[]
является не оптимальным, неверным или полным анахронизмом, а вы дали это понять, укажите КАК НАДО.

etc 02.01.2007 18:37

Квадратные скобки неудобны никогда. Их количество не должно превышать одной штуки на подобный блок кода.


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

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