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

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

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

Регистрация: Sep 2009
Сообщений: 5
По умолчанию Обработчик Click для объекта на стеке.

Задача - проще некуда, а туплю второй день, выручайте, плз.

Получаю с сервера xml-файл сложной структуры. Вынимаю из него пути к изображениям-миниатюрам и вывожу их как элементы VBox. Понятно, что так как на момент написания кода количество изображений неизвестно - создаю объект Image на стеке через new и добавляю его в VBox через addChild( ... ). Это все работает. Без проблем.

Проблема в том, что надо ловить click на созданное изображение. Упорно не понимаю, как поставить обработчик. Попытался поставить его через setStyle - не получается.



Примерно, код следующий:
Код AS3:
<mx:Application ... bla-bla-bla>
	<mx:VBox id="theImageBox" x="10" y="285" width="352" height="509" />
	<mx:Script>
		<![CDATA[
				... bla-bla-bla
			protected function handlerHaveDataLoader(event:Event):void {
				m_nSeries = 0;
				m_theSeries = theXmlLoader.responce().children();
				m_szDescriptionSeries = m_theSeries[m_nSeries].description; 
 
				var nLength:int = m_theSeries.length();
				for(var nIndex:int = 0; nIndex< nLength; nIndex++){
					var theImage:Image = new Image();
 
					theImage.width = 3*theImageBox.width/4;
					theImage.setStyle("horizontalAlign", nIndex%2==0?"left":"right");
					theImage.setStyle("click","handlerClick( 1 );");
 
					theImage.toolTip = m_theSeries[nIndex].caption;
					theImage.source = m_theSeries[nIndex].source;
 
					theImageBox.addChild(theImage);
				}
 
				m_theCollection = m_theSeries[m_nSeries].composition.children();
				m_nPosition = -1;
				nextImage();
			}
				... bla-bla-bla
		]]>
	</mx:Script></mx:Application>
Т.е. перефразируя вопрос:
как написать строку <mx:Image click="handlerClick( 1 );" /> для объекта Image созданного через new.

Кто-то поможет?

Старый 13.12.2009, 18:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
<mx:Image id="foo" click="handlerClick( 1 );" />
Код AS3:
foo.addEventListener(MouseEvent.CLICK, this.clickHandler);
private function clickHandler(event:MouseEvent):void
{
    trace(1);
}
"click" - это ни разу не стиль, это событие...
__________________
Hell is the possibility of sanity

Старый 13.12.2009, 19:05
WhiteWoolf вне форума Посмотреть профиль Отправить личное сообщение для WhiteWoolf Найти все сообщения от WhiteWoolf
  № 3  
Ответить с цитированием
WhiteWoolf

Регистрация: Sep 2009
Сообщений: 5
Цитата:
Сообщение от wvxvw Посмотреть сообщение
"click" - это ни разу не стиль, это событие...
Это было понятно, было непонятно, какой вывод из этого сделать.


Все получилось. Спасибо. wvxvw - респект и уважуха.

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

Теги
click , image , vbox
Опции темы
Опции просмотра

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

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


 


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


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