Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Опознание объекта над которым фокус мыши (http://www.flasher.ru/forum/showthread.php?t=175108)

elder_Nosferatu 10.02.2012 22:53

Согласен, но... Psycho Tiger когдато сказал, что нерационального не бывает, есть только более рациональное или менне рациональное. Как в моем примере с салютом (или дымом, или пламенем, или другим "или"). Очень напряжно слушать множество детей. Так что лучше пускай они сами решают, а мы займемся своими делами. Суть в том, что нужно действовать по обстоятельствам, а не слепо следовать правилам

HardCoder 10.02.2012 23:00

Цитата:

Сообщение от elder_Nosferatu (Сообщение 1062116)
Суть в том, что нужно действовать по обстоятельствам, а не слепо следовать правилам

Полностью согласен. Недавно где-то была тема про то стоит ли stop() писать в кадре (похожая ситуация).
Но кусок кода, представленный выше немного не о салютах, и он как-бы напрашивается повесить слушатель на родителя, а не на stage...

TanaTiX 10.02.2012 23:24

Цитата:

Очень напряжно слушать множество детей.
Множество детей не предполагает множество слушателей. И в данной ситуации картина такая же. Может быть множество допущений, но вопрос в том, когда о них начинаешь думать как о баге.

Wolsh 11.02.2012 00:45

Дело вообще в том, что когда даете советы, надо советовать, как делать правильно и грамотно.
А не такие, что потом приходится оправдываться тем, что в какой-то ситуации ваш способ может не принести проблем.
Быстрая разработка, экстремальное программирование – есть много красивых слов для описания того, как программирует профи. Дело только в том, что профи то понимает, что он делает, и какие могут быть последствия. Профи знает, как правильно, и знает, как оптимально в данной ситуации. Для новичка, не знающего ни того, ни другого, подобные советы – медвежья услуга. Не надо прыгать вперед лошади. Давайте сначала научимся верховой езде.

HardCoder 11.02.2012 01:52

Wolsh, я сам не люблю "медвежьих" услуг, касающихся тех вопросов, в которых я более компетентный чем другие. Но, что касается программирования - мне было бы приятно услышать о своих ошибках, которых не замечаю, или более универсальных/оптимальных техниках, которых не знаю и соответственно не спрашиваю. Руководствуясь этими соображениями автору было сделано замечание. Если ему было бы интересно, думаю он бы спросил как сделать лучше.
По поводу кода. Если цель программы - это разместить на главной временной шкале спрайт с пузырями и "полопать" их мышкой - признаю неуместность своего замечания и забираю свои слова назад.
Если же это в будущем будет какой-то более сложный проект, с более сложной иерархией обьектов на временной шкале, то не как профи, а как начинающий разработчик, но уже сталкивавшийся с подобной проблемой, советую автору воздержаться от такого кода и применять другой подход. Какой именно - это уже будет зависеть от конкретной ситуации и, думаю, его стоит обсуждать вне рамок этой темы.

chuvak2008f 11.02.2012 02:02

Цитата:

Сообщение от elder_Nosferatu (Сообщение 1062112)
Я так понял, что HardCoder имел ввиду, что экземпляр класса ничего не должен предпринимать в обход своего родителя. Это можно исправить, выкинув Евент о том, что объект свое отработал, аа родитель ловит сообщение и самостоятельно его удаляет

Цитата:

Сообщение от HardCoder (Сообщение 1062114)
Конечно, каждый вправе делать как ему хочется. Но, насколько я знаю, это неприлично командовать родителями. В одном примере, вроде бы ничего страшного: все под контролем. А в другом - более сложном проекте такая вещь может и погубить (то есть убить несколько часов на поиск проблемы). Поэтому лучше сразу привыкать к хорошему стилю программирования.

Добавлено через 1 минуту
elder_Nosferatu, да по поводу события - хороший вариант.

Так надо бы пример правильного кода!

Добавлено через 4 минуты
О блин, а я и не заметил что тут понаписали на 2 странице о_О

HardCoder 11.02.2012 02:22

Цитата:

Сообщение от chuvak2008f (Сообщение 1062139)
Так надо бы пример правильного кода!

Как можно советовать что-то конкретное, если не знаешь какая у вас задача.
Цитата:

Сообщение от HardCoder (Сообщение 1062137)
это уже будет зависеть от конкретной ситуации и, думаю, его стоит обсуждать вне рамок этой темы.

Вот, на мой взгляд, правильный код именно для ситуации со спрайтом и пузырями, о котором говорил выше:
Код AS3:

this.stage.addEventListener(MouseEvent.CLICK, runShot);
 
function runShot(event:MouseEvent):void
{
        if (event.target is Bubble)
        {
                this.bubblesLayer.removeChild(event.target as Bubble);
        }
}


chuvak2008f 11.02.2012 02:22

Как я понял вся демагогия лишь в том что когда объект удалится никто об этом не узнает? Мол заведи массив объектов и из него функцией "правильно" удаляй, чтобы вдруг топор у лесоруба не исчез когда тот размахнулся.

Правильно понял?

Добавлено через 1 минуту
жаль форум не сокетный, а то бы видно было о приходе сообщений пока пишешь)

Добавлено через 6 минут
Цитата:

Сообщение от HardCoder (Сообщение 1062142)
Как можно советовать что-то конкретное, если не знаешь какая у вас задача. Вот, на мой взгляд, правильный код именно для ситуации со спрайтом и пузырями, о котором говорил выше:
Код AS3:

this.stage.addEventListener(MouseEvent.CLICK, runShot);
 
function runShot(event:MouseEvent):void
{
        if (event.target is Bubble)
        {
                this.bubblesLayer.removeChild(event.target as Bubble);
        }
}


Это чтобы лишнее не удалить?

HardCoder 11.02.2012 02:38

Цитата:

Сообщение от chuvak2008f (Сообщение 1062143)
Это чтобы лишнее не удалить?

Да...

Wolsh 11.02.2012 03:36

Вложений: 1
Цитата:

Как я понял вся демагогия лишь в том что...
Вся демагогия в том, хотите вы получить контроль над программой или детский сумасшедший дом №13. Контроль подразумевает что кто-то, знающий что происходит, управляет теми, кто не знает. Если дети будут сами управлять собой, получится известная серия реклам Use Condoms, а не программа.
Вложение 27570


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

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