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

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

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

Регистрация: Apr 2009
Сообщений: 25
Question Помогите опознать причину warning-га.

При дебаге получаю следующий ворнинг: warning: unable to bind to property 'name' on class 'Object' (class is not an IEventDispatcher).

Собственно программа работает, как и ожидается, но ворнинг меня смущает. В чём может быть его причина?

Участники процесса, я так подозреваю: List, кастомный рендер и дата провайдер.

Вот код:

Код AS3:
List
 
<mx:List width="100%" height="100%" id="lSystemList" 
	     itemRenderer="com.artica.renderers.StorageRenderer"
	     dataProvider="{systemDataProvider}"/>
Код AS3:
Render
 
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" 
		 horizontalAlign="center"
    	         horizontalScrollPolicy="off" 
    	         verticalScrollPolicy="off"
     	         paddingTop="4" 
     	         paddingBottom="4" width="100%" height="100%">
 
    <mx:HBox width="100%" verticalAlign="middle">
        <mx:Image source="/assets/a16.png"/>
        <mx:Label text="{data.name}"/>
    </mx:HBox>
 
</mx:VBox>
Манипуляции примерно следующие:
Код AS3:
for each (var sNod:XML in xml.system)
{
	systemDataProvider.addItem({name:sNod.name});
}
Что я такого ужасного сделал?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
<mx:Label text="{data.name}"/>
data не может диспатчить события, поэтому и забиндить к ней нельзя.
__________________
Hell is the possibility of sanity

Старый 13.05.2009, 14:45
Macika вне форума Посмотреть профиль Отправить личное сообщение для Macika Найти все сообщения от Macika
  № 3  
Ответить с цитированием
Macika
 
Аватар для Macika

Регистрация: Apr 2009
Сообщений: 25
Так я и не пытаюсь ничего диспатчить. Или я чего-то не понимаю? Как мне по-другому вытаскивать данные из моего дата провайдера?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Binding это класс, в основе функциональности которого заложено то, что свойство, которое нужно забиндить является свойством объекта, который может диспатчить события. Свойство data является Object и поэтому диспатчить события не может. Если нужно привязаться к этому свойству, добавьте функцию, которая будет это свойство возвращать и привяжитесь к ней:
Код AS3:
<mx:Script>
<![CDATA[
private function getData():String
{
return this.data.name;
}
]]>
<mx:Script>
<mx:Label text="{getData()}"/>
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 13.05.2009 в 15:31.
Старый 13.05.2009, 15:24
Macika вне форума Посмотреть профиль Отправить личное сообщение для Macika Найти все сообщения от Macika
  № 5  
Ответить с цитированием
Macika
 
Аватар для Macika

Регистрация: Apr 2009
Сообщений: 25
Ворнинг исчез, но вместе с ним и перестали выводиться данные
Непонятно.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ой поправил
__________________
Hell is the possibility of sanity

Старый 13.05.2009, 15:38
Macika вне форума Посмотреть профиль Отправить личное сообщение для Macika Найти все сообщения от Macika
  № 7  
Ответить с цитированием
Macika
 
Аватар для Macika

Регистрация: Apr 2009
Сообщений: 25
Собственно уже пробовал и так.
Пробовал старый вариант + getData().name.

Потрейсил, проблема в том, что сама data всегда null.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А, ну так понятное дело тогда
Код AS3:
<mx:Script>
<![CDATA[
override public function set data(value:Object):void
{
myLabel.text = value.name;
}
]]>
<mx:Script>
<mx:Label id="myLabel"/>
__________________
Hell is the possibility of sanity

Старый 13.05.2009, 16:28
Macika вне форума Посмотреть профиль Отправить личное сообщение для Macika Найти все сообщения от Macika
  № 9  
Ответить с цитированием
Macika
 
Аватар для Macika

Регистрация: Apr 2009
Сообщений: 25
Это первый вариант, который я попробовал. Нарыл его в cookbook, но если я так делаю, я не могу ничего выбрать в листе

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А так:
Код AS3:
<mx:Script>
<![CDATA[
private var _labelText:String;
override public function set data(value:Object):void
{
_labelText = value.name;
}
override protected function childrenCreated():void
{
myLabel.text = _labelText;
super.childrenCreated();
}
]]>
<mx:Script>
<mx:Label id="myLabel"/>
__________________
Hell is the possibility of sanity

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

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

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


 


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


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