Показать сообщение отдельно
Старый 21.09.2011, 01:50
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 3  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Цитата:
Сообщение от Dimitry_II Посмотреть сообщение
А ты уверен, что проблема с s:Image?
XML(value).@attr возвращает не String, а XMLList. Поэтому думаю, что у s:Image просто другая трактовка приведения типа в отличие от SWFLoader (source у mx:Image наследовано у него). Кстати, твой второй работающий пример это подтверждает - когда значение текстовое и тип четко приведен, то срабатывает нормально.
Проблема таки с " другой трактовкой приведения типа в отличие от SWFLoader".
Вот так работает:

Код AS3:
...
<s:Image id="img" source="{String(XML(data).@thumb)}" />
...
А вот и объяснение. В SWFLoader.loadContent есть такой код:
Код AS3:
 ...
else
        {
            // We have something that is not a class or string (XMLNode, for 
            // example). Call toString() and try to load it.
            url = classOrString.toString();
...
Ни в s:Image, ни в его родителях ничего такого я не нашел.

Добавлено через 3 минуты
Аналогичным образом заработал и вариант с set data:

Код AS3:
override public function set data(value:Object):void {
	img.source = String(XML(value).@thumb); 
	trace(XML(value).@thumb);
	super.data = value;
}