Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.01.2009, 00:42
THJVHFGRE вне форума Посмотреть профиль Отправить личное сообщение для THJVHFGRE Найти все сообщения от THJVHFGRE
  № 151  
Ответить с цитированием
THJVHFGRE

Регистрация: Jan 2009
Сообщений: 2
Люди, допоможите, плиз!!!
Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой

Добавлено через 1 минуту
Люди, допоможите, плиз!!!
Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой - то не въезжаю, то ли фиг его знает... Короче, пытаюсь повторить начальныйурок с классами из статьи,

Добавлено через 3 минуты
Люди, допоможите, плиз!!!
Я второй день пытаюсь разобраться с классами - полная беда, то ли я чегой - то не въезжаю, то ли фиг его знает... Короче, пытаюсь повторить начальный урок с классами из статьи, а он, зараза, пишет, что невозможно определить класс... Я поставил 3 флеш. Дошел до того, что тупо копировал текст, - результат тот же. Может, кто поможет чайнику...

Старый 09.01.2009, 20:35
Stephen Wings вне форума Посмотреть профиль Отправить личное сообщение для Stephen Wings Найти все сообщения от Stephen Wings
  № 152  
Ответить с цитированием
Stephen Wings
 
Аватар для Stephen Wings

Регистрация: Jan 2009
Сообщений: 1
Уважаемый THJVHFGRE, на ваш пост никто не сможет ответить, так как он небуквально гласит: "Расскажите мне вкратце про Action Script, чтобы я все понял и мог программировать на нем".

Уважаемые знатоки У меня вопрос чуть менее глупый, но более конкретный. Я даже зарегистрировался, когда понял, что не могу дальше без диалога.

Итак, у меня идентичная проблема, что и уже озвучивалась в этой теме. Постом позже на нее создатель этого замечательного туториала ответил. Вот эти сообщения:
здесь.
здесь ..

но каюсь, я перечитывал ответ автора и переделывал код десятки раз, но, что называется, "не просек". Я не вижу в сообщении №112 конкретного ответа: "как изменить код, чтобы он работал?"

Прошу ответить для тех, кто в танке. Неважно, насколько глуп вопрос. Хочу разобраться.


Последний раз редактировалось Stephen Wings; 09.01.2009 в 20:38.
Старый 12.01.2009, 07:24
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 153  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Цитата:
Сообщение от Stephen Wings Посмотреть сообщение
Я не вижу в сообщении №112 конкретного ответа: "как изменить код, чтобы он работал?"
заменить
Код:
for each (s in new_asteroid.sectors){
на
Код:
for (s in new_asteroid.sectors){
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 14.01.2009, 23:04
THJVHFGRE вне форума Посмотреть профиль Отправить личное сообщение для THJVHFGRE Найти все сообщения от THJVHFGRE
  № 154  
Ответить с цитированием
THJVHFGRE

Регистрация: Jan 2009
Сообщений: 2
Понял, прошу прощения...Попытаюсь разобраться, в чем фишки...

Старый 17.01.2009, 22:58
ZlobaZl вне форума Посмотреть профиль Отправить личное сообщение для ZlobaZl Найти все сообщения от ZlobaZl
  № 155  
Ответить с цитированием
ZlobaZl
[+1 16.02.09]
[++1 16.02.09]

Регистрация: Jan 2009
Сообщений: 41
Вот возникло несколько проблем когда разбирался с примером.

пишу код для движения за мышкой
Код AS3:
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;
	}
}
}
import flash.display.DisplayObject;
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 не выдает ошибки. Почему?

Старый 17.01.2009, 23:11
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 156  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: 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 и др.

Старый 17.01.2009, 23:58
ZlobaZl вне форума Посмотреть профиль Отправить личное сообщение для ZlobaZl Найти все сообщения от ZlobaZl
  № 157  
Ответить с цитированием
ZlobaZl
[+1 16.02.09]
[++1 16.02.09]

Регистрация: Jan 2009
Сообщений: 41
Цитата:
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) А т что в "Миграции с АС2 на АС3" написанно что _xmouse --> mouseX в расчет не брать? И как теперь пользоваться "super.stage.mouseX" В тупую писать вместо "mouseX"? Надо ли какиенибуть Классы потипу "DisplayObject"
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."- абстракционный клас? И что надо сделать чтобы Его использовать???

Старый 18.01.2009, 00:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 158  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
1) Нет, _xmouse/_ymouse в AS2 тоже брались бы относительно клипа;
2) Нет. addEventListener — метод добавления нового слушателя, а не вызов. Вызов, а точнее отправка — это dispatchEvent.
3) Какие-какие? Экземпляры типа Event, содержат в себе как минимум ссылку на отправителя и тип. Это и есть само событие, его параметры. Т. е. когда происходит событие, вызывается подписанный на это событие обработчик и в него передаётся экземпляр этого события (e:Event), у этого экземляра есть различные свойства, как минимум тип события и ссылка на отправителя. В случае подписки на скролл мыши, будет ещё и та самая дельта;
4) О наследниках DisplayObject можно узнать в хелпе.

mouseY — это свойство, а не оператор. В AS2 аналогом было свойство _ymouse у MovieClip-ов. Импорт класса DisplayObject для использования свойства mouseY в его наследниках не требуется.

Старый 18.01.2009, 00:29
ZlobaZl вне форума Посмотреть профиль Отправить личное сообщение для ZlobaZl Найти все сообщения от ZlobaZl
  № 159  
Ответить с цитированием
ZlobaZl
[+1 16.02.09]
[++1 16.02.09]

Регистрация: Jan 2009
Сообщений: 41
1) А точно в АС2 мы же отходили от _root-а да и писали в кадре, а тут та у нас рут это имя мувиклипа. Такчто понятно это)
2) А по поводу характеристик (тоесть константы ENTER_FRAME) это правда? И где их брать эти другие "константы"???
3) Как я понял e это переменная со свойствами, дак как тогда эти свойства нам вызвать? Например координаты "х" и "у" у мувиклипа мы находим путем "name_move.x" и "name_move.у" а как тут быть?

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

Старый 18.01.2009, 00:45
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 160  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
1) В AS2 в кадрах тоже не писали, всё в классах;
2) У класса Event есть ещё куча констант;
3) e.type, e.target, например;

Ну, грубо говоря, да, для собственных свойств импортировать ничего не надо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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