Показать сообщение отдельно
Старый 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.

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