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

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

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

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
По умолчанию Слайдшоу из XML по таймеру

Добрый день. Нужно сделать слайдшоу с интервалом в 2 секунды. Параметры забираю из XML. Сначала при вызове ф-ции загружаю картинку с 0 индексом - работает.
Потом через каждые 2 секунды по таймеру из переменной забираю увеличенное значение индекса.
Трейсом вывожу имена новых элементов и их параметры - всё выводится, но картинка не обновляется - получаю ошибку:

Ошибка:
Код:
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать XML@277684f1 element <pctSw2 pctSwX="435" pctSwY="150" pctSwWidth="548" pctSwHeight="530"> в flash.net.URLRequest.
	at Function/<anonymous>()
	at flash.utils::Timer/_timerDispatch()
	at flash.utils::Timer/tick()
XML:
Код:
<objects>
	<pictShow>
		<pctSw1 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "550"
				pctSwHeight = "529">06_1.jpg</pctSw1>
		<pctSw2 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "548"
				pctSwHeight = "530">06_2.jpg</pctSw2>
		<pctSw3 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "550"
				pctSwHeight = "530">06_3.jpg</pctSw3>
		<pctSw4 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "549"
				pctSwHeight = "530">06_4.jpg</pctSw4>
		<pctSw5 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "547"
				pctSwHeight = "489">06_5.jpg</pctSw5>
		<pctSw6 pctSwX = "435"
				pctSwY = "150"
				pctSwWidth = "549"
				pctSwHeight = "530">06_6.jpg</pctSw6>
	</pictShow>
</objects>
Код AS3:
var pictMem:int = 0;
 
function callPictShow():void
{
	var xmlPictShowList:XMLList;
	      xmlPictShowList = xmlTitleList[i].children();
 
	var pictShowLoad:UILoader = new UILoader();
 
	var timerPict:Timer = new Timer (2000);
	      timerPict.addEventListener(TimerEvent.TIMER, onTimerPict);
	      timerPict.start();
 
	      pictShowLoad.x = xmlPictShowList.attribute('pctSwX')[0];
	      pictShowLoad.y = xmlPictShowList.attribute('pctSwY')[0];
	      pictShowLoad.width = xmlPictShowList.attribute('pctSwWidth')[0];
	      pictShowLoad.height = xmlPictShowList.attribute('pctSwHeight')[0];
	      pictShowLoad.source = xmlPictShowList[0];
	      pictShowLoad.load();
	      pictMem = 0;
 
	     addChildAt(pictShowLoad,2);
 
	function onTimerPict(e:TimerEvent):void
	{
		pictMem++;
		trace(xmlPictShowList[pictMem]);
		trace (xmlPictShowList.attribute('pctSwX')[pictMem]);
		trace (xmlPictShowList.attribute('pctSwY')[pictMem]);
		trace (xmlPictShowList.attribute('pctSwWidth')[pictMem]);
		trace (xmlPictShowList.attribute('pctSwHeight')[pictMem]);
		trace(xmlPictShowList[pictMem]);
 
		pictShowLoad.x = xmlPictShowList.attribute('pctSwX')[pictMem];
		pictShowLoad.y = xmlPictShowList.attribute('pctSwY')[pictMem];
		pictShowLoad.width = xmlPictShowList.attribute('pctSwWidth')[pictMem];
		pictShowLoad.height = xmlPictShowList.attribute('pctSwHeight')[pictMem];
		pictShowLoad.load(xmlPictShowList[pictMem]);
 
		timerPict.stop();
		timerPict.reset();
		timerPict.start();
	}
}


Последний раз редактировалось niks_13; 04.05.2011 в 17:14.
Старый 04.05.2011, 17:23
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 2  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
http://help.adobe.com/ru_RU/AS3LCR/F...er.html#load()

А Вы что туда пытаетесь передать?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.05.2011, 17:38
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 3  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
Я передаю из XML листа имя картинки.
Если оттрейсить: xmlPictShowList[pictMem] - выводятся правильные имена из XML'а.

Если знаете что исправить буду признателен.

Старый 04.05.2011, 17:56
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 4  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Если бы Вы пошли по ссылке и прочитали текст, то увидели бы примеры кода.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.05.2011, 18:09
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 5  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
Я прекрасно умею пользоваться loader'ом и мне нужно решение проблемы, а не прочтение Войны и Мира, иначе зачем ещё форум нужен.
_____________________________________________________________
Проблема решена.


Последний раз редактировалось niks_13; 04.05.2011 в 18:19.
Старый 04.05.2011, 19:05
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Коллега, не надо рефлексии. Строка pictShowLoad.load(xmlPictShowList[pictMem]) говорит, что лоадером Вы пользоваться не умеете и более возвращаться к этому не будем.
Итак, берем пример по ссылке, которую я дал:

Код AS3:
import fl.containers.UILoader;
 
var url:String = "http://www.helpexamples.com/flash/images/image3.jpg";
var req:URLRequest = new URLRequest(url);
 
var myUILoader:UILoader = new UILoader();
myUILoader.scaleContent = false;
myUILoader.move(10, 10);
myUILoader.load(req);
addChild(myUILoader);
Здесь url задан литералом, у Вас он лежит в xmlPictShowList[pictMem]. Заменяем, убираем scaleContent, move и addChild и получаем требуемый Вам код.

Нет?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.05.2011, 23:20
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 7  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
Эта строка говорит, что я делал это в 2:43 ночи, а если бы Вы видели предыдущие 500 строк (чего я ни в жисть не покажу) и 8 вызываемых лоадеров, то заметили бы, что это случайная ошибка. Так что не надо необъективной критики.

Я же сказал, что уже всё решил.
Это:
Код AS3:
pictShowLoad.load(xmlPictShowList[pictMem]);
меняем на:
Код AS3:
pictShowLoad.source = xmlPictShowList[pictMem];
pictShowLoad.load();


Последний раз редактировалось niks_13; 04.05.2011 в 23:24.
Старый 04.05.2011, 23:41
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
2:43, 16:05, 16:38.

No more comments
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

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

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

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


 


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


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