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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 30.11.2008, 23:48
misha_yu вне форума Посмотреть профиль Отправить личное сообщение для misha_yu Найти все сообщения от misha_yu
  № 1  
misha_yu

Регистрация: Jun 2008
Сообщений: 56
По умолчанию еще раз addEventListener в Array

День добрый, помогите пожалуйста.
Читал топики с подобной темой в форуме и гугле, че то не помогает.

Задача добавить лисенер к массиву мувиклипов. Массив вложен в клип на стэйдже который в свою очередь маскирован.
Должна получится прокрутка превьюшек фотографий, при клике на одну из которых должна подрузится большая фотка.

Вопрос. Если объект в массиве один - лисенер добавляется, если больше - нет.

Код AS3:
addEventListener(Event.ENTER_FRAME,loopFunction);
function loopFunction(event:Event) {
simplePreviewAdd()}
 
public function simplePreviewAdd():void {
var preview:PreviewClass=new PreviewClass  ;
addChildAt(preview,0);
previewArray.push(preview);
previewArray[addedPreviewCount].addEventListener(MouseEvent.MOUSE_OVER,previewArrayMouseDown,false, 0, true);
trace (" MOUSE_OVER ")
addedPreviewCount++;
}
пробовал вытащить имя клипа при наведении на него чтобы назначить лисенер при наведении на клип event.target
Код AS3:
trace(event.target.name);
он возвращает : root1
- ну это ваще че то ни то.

Спасибо

Добавлено через 4 минуты
сори, в код иф не дописал.
на самом деле так:
Код AS3:
addEventListener(Event.ENTER_FRAME,loopFunction);
function loopFunction(event:Event) {
if (addedPreviewCount<previewArray.length) {
simplePreviewAdd()}}
 
public function simplePreviewAdd():void {
var preview:PreviewClass=new PreviewClass  ;
addChildAt(preview,0);
previewArray.push(preview);
previewArray[addedPreviewCount].addEventListener(MouseEvent.MOUSE_OVER,previewArrayMouseDown,false, 0, true);
trace (" MOUSE_OVER ")
addedPreviewCount++;
}
суть такая

Старый 01.12.2008, 00:12
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 2  
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Что-то как-то кривовато...
Во-первых нет "()" при создании экземпляра класса, во-вторых совершенно незачем таким образом назначать слушателей. Вот так все должно работать:
Код AS3:
public function simplePreviewAdd():void {
 var preview:PreviewClass = new PreviewClass();
 preview.addEventListener(MouseEvent.MOUSE_OVER, previewMouseDownHandler);
 addChildAt(preview,0);
 previewArray.push(preview);
}
В-третьих не понимаю, почему бы не добавлять превью через for(...){...}, а не событие ENTER_FRAME


Последний раз редактировалось s8000_1; 01.12.2008 в 00:14.
Старый 01.12.2008, 00:30
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 3  
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
s8000_1, в AS3 () при создании экземпляра писать необязательно
__________________
4am is time to rock

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от DarkLight Посмотреть сообщение
s8000_1, в AS3 () при создании экземпляра писать необязательно
Обязательно. Без вариантов. Не смотря на то, что позволяет так делать.

Старый 01.12.2008, 08:39
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 5  
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
Не обязательно.
AS3 это, по сути, усовершенствованный ECMA262. Привожу вырезку из спецификации по ECMA262:

MemberExpression :
...
new MemberExpression Arguments

NewExpression :
MemberExpression
new NewExpression

Arguments :
( )
( ArgumentList )

LeftHandSideExpression :
NewExpression
CallExpression

В случае использования стиля NewExpression (без скобок), не обсчитывается список параметров и вызывается конструктор по умолчанию (11.2.2 спецификации).

Говорить что использовать не правильно идеологически тоже нельзя. В C++, например, много ситуаций когда НЕОБХОДИМО использовать синтаксис без скобок.

Старый 01.12.2008, 09:05
misha_yu вне форума Посмотреть профиль Отправить личное сообщение для misha_yu Найти все сообщения от misha_yu
  № 6  
misha_yu

Регистрация: Jun 2008
Сообщений: 56
большое спасибо, все заработало

Старый 01.12.2008, 10:11
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 7  
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Скобочки-то лучше писать...

Старый 01.12.2008, 10:30
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 8  
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
Почему? Не написание скобок не может привести ни к одной ошибке (в отличие от ';'), абсолютно разрешенная запись.

Старый 01.12.2008, 11:38
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ZlPredator, это такая же идеологическая борьба, как писать 5 == i, а не i == 5. ошибка может подкрасться незаметно %)

Старый 01.12.2008, 11:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от ZlPredator Посмотреть сообщение
Почему? Не написание скобок не может привести ни к одной ошибке (в отличие от ';'), абсолютно разрешенная запись.
Дело не в ошибке, а в культуре написания кода.
Также как не стоит писать
Код:
if (условие) действие
надо всегда писать
Код:
if (условие) {
	действие
}
Код более читабельный
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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