![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 2
|
Люди, допоможите, плиз!!!
Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой Добавлено через 1 минуту Люди, допоможите, плиз!!! Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой - то не въезжаю, то ли фиг его знает... Короче, пытаюсь повторить начальныйурок с классами из статьи, Добавлено через 3 минуты Люди, допоможите, плиз!!! Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой - то не въезжаю, то ли фиг его знает... Короче, пытаюсь повторить начальный урок с классами из статьи, а он, зараза, пишет, что невозможно определить класс... Я поставил 3 флеш. Дошел до того, что тупо копировал текст, - результат тот же. Может, кто поможет чайнику... |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1
|
Уважаемый THJVHFGRE, на ваш пост никто не сможет ответить, так как он небуквально гласит: "Расскажите мне вкратце про Action Script, чтобы я все понял и мог программировать на нем".
Уважаемые знатоки У меня вопрос чуть менее глупый, но более конкретный. Я даже зарегистрировался, когда понял, что не могу дальше без диалога. Итак, у меня идентичная проблема, что и уже озвучивалась в этой теме. Постом позже на нее создатель этого замечательного туториала ответил. Вот эти сообщения: здесь. здесь .. но каюсь, я перечитывал ответ автора и переделывал код десятки раз, но, что называется, "не просек". Я не вижу в сообщении №112 конкретного ответа: "как изменить код, чтобы он работал?" Прошу ответить для тех, кто в танке. Неважно, насколько глуп вопрос. Хочу разобраться. ![]() Последний раз редактировалось Stephen Wings; 09.01.2009 в 20:38. |
|
|||||
|
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Цитата:
на |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 2
|
Понял, прошу прощения...Попытаюсь разобраться, в чем фишки...
|
|
|||||
|
[+1 16.02.09]
[++1 16.02.09] Регистрация: Jan 2009
Сообщений: 41
|
Вот возникло несколько проблем когда разбирался с примером.
пишу код для движения за мышкой package main{ import flash.display.MovieClip; import flash.display.DisplayObject; import flash.events.Event; dynamic public class GameAs3Class_Robots_World extends MovieClip {; public function GameAs3Class_Robots_World() { addEventListener(Event.ENTER_FRAME, Move_camera); } public function Move_camera(e : Event):void { this.x=mouseX; this.y=mouseY; } } } 1) Если создать в основном файле мувиклип с индификатором "main.GameAs3Class_Robots_World" Ипросмотреть как работает данный файл, то получается картина того как мелькает наш мувиклип (притом мелькает похоже както странно, то ли запоминает предыдущее местоположение и летает то к нынешнему то к предыдущему, толи складывает координаты и мелькает, в общем не так как надо). Что изменить как исправить проблемму? 2) "addEventListener(Event.ENTER_FRAME, Move_camera);" Это как понятно добавление события в код. синтаксис как я понял таков: "ДобавитьСобытие(Событие.Врубания_Кадра, Производить_действие_события_в_такойто_функции)" Тогда вопрос фраза "addEventListener" будет для всех событий одинакова? И где найти другие события кроме "Event.ENTER_FRAME" 3) Начто писать это: "(e : Event)" ? К чему переменная эта нужна? 4) Для чего нужно писать "import flash.display.DisplayObject;", как я понял чтобы работал блок this.x=mouseX; (тоесть чтобы когд понял что нам надо координаты брать) Но дело в том что и не писав этот импорт flash не выдает ошибки. Почему? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1) Вы используете mouseX и mouseY относительно самого клипа, а т. к. при каждом рендере кадра клип смещает свою позицию и положение курсора мыши относительного него изменяется, соответственно мы видим хаотичное движение. Как вариант, можно использовать super.stage.mouseX, super.stage.mouseY.
2) Эта строка означает, что вы подписываете на событие (как на газету) какой-либо метод-обработчик вашего класса. Если переносить в реальность, то, грубо говоря, в вашем коде вы подписываете газету с названием Event.ENTER_FRAME (в константе содержится строковое значение 'enterFrame', т. е. это «ежекадровая» газета) на почтовый ящик (метод Move_camera), который и будет получать экземпляры этой газеты (те самые «e», указанные в обработчике Move_camera). 4) Потому что класс DisplayObject в вашем коде нигде не используется. Это абстрактный класс, экземпляры которого создать нельзя, но можно создавать наследников, вроде класса Sprite. В классе DisplayObject описаны базовые свойства визуальных объектов во Flash, такие как x, y, width, height и др. |
|
|||||
|
[+1 16.02.09]
[++1 16.02.09] Регистрация: Jan 2009
Сообщений: 41
|
Цитата:
2) Тоесть и получается если разбирать "addEventListener(Event.ENTER_FRAME, Move_camera);"" по частям: "addEventListener"- вызов события; "(Event.ENTER_FRAME, Move_camera)" - Вызов события с такими характеристиками где: "Event.ENTER_FRAME"-Характеристики самого вызова (притом ENTER_FRAME можно заменить на чтонибуть друго (что потребуется)), а "Move_camera" адрес вызывания. 3)"который и будет получать экземпляры этой газеты (те самые «e», указанные в обработчике Move_camera)." А какие экзэмпляры имеются у ЭнтерФрэйма??? Или это пишется по стандарту (в энтер фрэйме просто ничем он вызван ен может быть), а в других случаях нужно вызывать? Это случаем например не та "дэльта", или както так, что АС2 Требовалась при обработке события использования ролика мышки (ана нам помогало определить куда ролик крутим)?? 4) А можно поподробнее что за наследники "вроде класса Sprite"? зы и еще вопросик)) Как пользоваться тогда "Мигратором" (назовем его так)))) Разберем строчку: "_ymouse Свойство [только для чтения] flash.display.DisplayObject.mouseY Перемещено в класс DisplayObject, изменено имя на mouseY, удалено исходное подчеркивание из имени." Как я раньше понимал что мы смотрим для АС2 код находим его это "_ymouse" далее смотри на "flash.display.DisplayObject.mouseY" Логично что это строчка неможет быть оператором, поэтому по логике "mouseY"-это оператор, а "flash.display.DisplayObject" это класс который нада импортировать. Правильно я понял? Или не так получается? Тогда почему "flash.display.DisplayObject."- абстракционный клас? И что надо сделать чтобы Его использовать??? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1) Нет, _xmouse/_ymouse в AS2 тоже брались бы относительно клипа;
2) Нет. addEventListener — метод добавления нового слушателя, а не вызов. Вызов, а точнее отправка — это dispatchEvent. 3) Какие-какие? Экземпляры типа Event, содержат в себе как минимум ссылку на отправителя и тип. Это и есть само событие, его параметры. Т. е. когда происходит событие, вызывается подписанный на это событие обработчик и в него передаётся экземпляр этого события (e:Event), у этого экземляра есть различные свойства, как минимум тип события и ссылка на отправителя. В случае подписки на скролл мыши, будет ещё и та самая дельта; 4) О наследниках DisplayObject можно узнать в хелпе. mouseY — это свойство, а не оператор. В AS2 аналогом было свойство _ymouse у MovieClip-ов. Импорт класса DisplayObject для использования свойства mouseY в его наследниках не требуется. |
|
|||||
|
[+1 16.02.09]
[++1 16.02.09] Регистрация: Jan 2009
Сообщений: 41
|
1) А точно в АС2 мы же отходили от _root-а да и писали в кадре, а тут та у нас рут это имя мувиклипа. Такчто понятно это)
2) А по поводу характеристик (тоесть константы ENTER_FRAME) это правда? И где их брать эти другие "константы"??? 3) Как я понял e это переменная со свойствами, дак как тогда эти свойства нам вызвать? Например координаты "х" и "у" у мувиклипа мы находим путем "name_move.x" и "name_move.у" а как тут быть? Получается нужно разграничивать свойства и переменные. Для переменных надо импортировать кслассы для свойст ненада. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1) В AS2 в кадрах тоже не писали, всё в классах;
2) У класса Event есть ещё куча констант; 3) e.type, e.target, например; Ну, грубо говоря, да, для собственных свойств импортировать ничего не надо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:47. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|