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

neonoviiwolf 15.09.2014 03:35

вопрос по слушателям и хиттест
 
Добрый день!
Вопрос возник по слушателям, в чём разница между слушателями к примеру stage.addEventListener() и addEventListener() - у меня в обоих случаях всё работает одинаково. Так же зачем писать к примеру name_muvik.addEventListener(), где name_muvik - название мувика например?

По хиттесту, есть ли встроенная функция в экш, которая определяет столкновение не по рамке мувика, а по самому рисунку (если форма сложная например)

Так же вопрос в принципе для меня интересный, есть мувики, которые движутся и для них нужно сделать хиттест, скорость высокая, по этом и расчёт столкновений нужно искать между кадрами. Но движение мувика хаотичны, т.е. невозможно просчитать точку нахождения объекта в следующем кадре наверняка, на данный момент по сложности движения возможны 2 точки нахождения мувика в следующем кадре. Как решить данный вопрос, ведь в одном варианте например столкновение будет, во втором нет, но вот точно определить нахождение мувика невозможно заранее и из-за высокой скорости необходимо заранее просчитывать столкновения

delphic 15.09.2014 10:57

stage.addEventListener() и addEventListener() да разницы как я понял нету, я на одном из форумов задал этот вопрос и как я понял что это просто стиль писания, то есть принято так stage.addEventListener() в главном классе, в остальных this.addEventListener(), хотя я сам не уверен и вот такую конструкцию покажу - this.stage.dispatchEvent вот так )))). Сколько лично я пробовал без уточнений stage и this писать, работало всегда, может лучше писать где знаешь уточнение, а где нет, без уточнений. name_muvik.addEventListener() ну это уже очень просто, имя нужно для обращения, вот допустим тебя звать вася, я крикну саша ты же не отреагируешь именно на сашу, так же и тут, всяким таким инструментам, для обращения ты должен указывать его имя как в коде так и в свойствах. Насчет как просчитать, у меня еще опыта маловато пока, даже не знаю как это делать, но буду следить за темой, самому интересно, вопросы то кстати все очень интересные и я думаю может даже обсуждение будет

Korchy 15.09.2014 11:33

delphic
не вводите человека в заблуждение.

neonoviiwolf
stage - основной контейнер сцены. Когда вы пишете stage.addEventListener это означает, что вы хотите слушать событие предназначенное для этого самого основного контейнера. Если на сцену вы добавили скажем спрайт с именем mysprite, то для того, чтобы спрайт имел возможность обработать событие, предназначенное именно ему, вы будете писать mysprite.addEventListener. Если в сцене есть еще один спрайт mysprite2, то чтобы он обрабатывал свои события, вам надо будет писать mysprite2.addEventListener. Если же вы напишете stage.addEventListener вы получите обработку события для всех объектов сцены. Подробнее про обработку событий почитайте здесь http://help.adobe.com/ru_RU/ActionSc...0204-7fca.html

delphic 15.09.2014 13:25

Цитата:

Сообщение от Korchy (Сообщение 1171977)
delphic
не вводите человека в заблуждение.

neonoviiwolf
stage - основной контейнер сцены. Когда вы пишете stage.addEventListener это означает, что вы хотите слушать событие предназначенное для этого самого основного контейнера. Если на сцену вы добавили скажем спрайт с именем mysprite, то для того, чтобы спрайт имел возможность обработать событие, предназначенное именно ему, вы будете писать mysprite.addEventListener. Если в сцене есть еще один спрайт mysprite2, то чтобы он обрабатывал свои события, вам надо будет писать mysprite2.addEventListener. Если же вы напишете stage.addEventListener вы получите обработку события для всех объектов сцены. Подробнее про обработку событий почитайте здесь http://help.adobe.com/ru_RU/ActionSc...0204-7fca.html

интересно в чем именно я ввожу в заблуждение - stage.addEventListener и addEventListener будут работать, и насколько я понял он разницу просто спрашивает, а не понятия.Смысл такой addChild() или stage.addChild() покажет нам что то, так некоторые пишут так, а кто та эдак, вот он о чем скорей всего имел ввиду

ObOs 15.09.2014 13:38

Цитата:

интересно в чем именно я ввожу в заблуждение
Тем, что говорите:
Цитата:

stage.addEventListener() и addEventListener() да разницы как я понял нету
Это не так.

samana 15.09.2014 13:44

Цитата:

Сообщение от delphic (Сообщение 1171976)
stage.addEventListener() и addEventListener() да разницы как я понял нету, я на одном из форумов задал этот вопрос и как я понял что это просто стиль писания, то есть принято так stage.addEventListener() в главном классе, в остальных this.addEventListener()

Нет, нет, это не стиль написания, это скорее недопонимание.

Цитата:

Сообщение от delphic (Сообщение 1171976)
Смысл такой addChild() или stage.addChild() покажет нам что то, так некоторые пишут так, а кто та эдак,

Здесь просто огромная разница. Допустим добавить кнопку в проигрыватель или добавить кнопку на сцену - не одно и то же, верно?

RAlfDog 15.09.2014 13:44

Цитата:

Сообщение от delphic (Сообщение 1171985)
некоторые пишут так, а кто та эдак

Все зависит от того в каком месте это пишут! Если писать на основной временной шкале в среде разработки Adobe Flash CS6 например, то да, действительно, разница есть, но ей можно пренебречь в некоторых случаях. А если писать "внутри" созданного на этой шкале MovieClip'а - то разница колоссальная :)

Korchy 15.09.2014 14:07

delphic

Попробую предположить, что вы путаете this и stage.
вот это:
this.addEventListener()
и
addEventListener()
действительно стиль и писать или не писать this - дело нотаций, установленных в команде разработчиков.
А
stage.addEventListener()
и
addEventListener()
нужно очень хорошо понимать, в каком случае это будет одно и то же, а в каком - две большие разницы. Одним и тем же это будет только в случае, если вы пишете это в контейнере сцены (stage). Написав это, например, в классе кнопки вы получите в каждом случае разный результат.

delphic 15.09.2014 17:18

ну про кнопки это понятно, я вообще о сцене говорил, даже в первом моем сообщение я нормально сказал о кнопке, что да, там обращение нужно,так как указываешь кому это относится, а вот со сценой, да немного недопонимал, но вот после обсуждения уже понял смысл написаний stage.addEventListener() и addEventListener(), вообще да, лучше уточнение, то есть будет для себя понятней кому и что ты приказываешь делать, я иногда этим пренебрегал, а сейчас думаю что зря, намного понятней когда смотришь код с уточнением.

все будет работать без stage и this если правильно писать, но есть свои но ....)))

silin 15.09.2014 17:44

Цитата:

Сообщение от Korchy (Сообщение 1171991)
delphic

Попробую предположить, что вы путаете this и stage.
вот это:
this.addEventListener()
и
addEventListener()
действительно стиль и писать или не писать this - дело нотаций, установленных в команде разработчиков.
А
stage.addEventListener()
и
addEventListener()
нужно очень хорошо понимать, в каком случае это будет одно и то же, а в каком - две большие разницы. Одним и тем же это будет только в случае, если вы пишете это в контейнере сцены (stage). Написав это, например, в классе кнопки вы получите в каждом случае разный результат.

однако и здесь путаница: нельзя же ничего написать в stage (потому как это объект плеера), когда вы пишете в контейнере сцены ( в IDE-шной терминологии), то пишите вы в root'е (он же Document class), в вовсе не в stage
т.е. stage.addEventListener() и addEventListener() не могут быть одним и тем же в принципе
другое дело что это может быть одинаковым по результату из-за всплытия события, но это другой вопрос


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

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