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