![]() |
|
||||||||||
|
|||||
|
для загрузки изображения из директории с помощью файла
допустим, у меня есть такая функция(последний параметр - порядковый номер файла jpg, или сроки в XML описании): //вставим слайд
function addMovie(target_mc:MovieClip,pathToXMLfile:String,num:Number) {
var mcl:MovieClipLoader = new MovieClipLoader();
target_mc.image_mc.removeMovieClip();//удалим контейнер если таковой имеется в наличии.
target_mc.createEmptyMovieClip("image_mc",target_mc.getNextHighestDepth());
meXML = new XML();
meXML.ignoreWhite = true;
meXML.onLoad = function(success:Boolean){
if(success){
var rootNode:XMLNode = meXML.firstChild;
var totalElements:Number = rootNode.childNodes.length;
var arrayElements:Array = rootNode.childNodes;
if(num > totalElements-1) {
num = totalElements-1;
}
var secNode:XML = arrayElements[num];
var imagePath:String = secNode.attributes.loc;
//вводим изображение нежно)
var mclListener:Object = new Object();
mclListener.onLoadInit = function() {
resizePict(target_mc,target_mc.image_mc,20);
target_mc.image_mc._x = (target_mc._width - target_mc.image_mc._width)/2;
target_mc.image_mc._y = (target_mc._height - target_mc.image_mc._height)/2;
var imgTween:Object = new Tween(target_mc.image_mc,"_alpha",Back.easeOut,0,100,3,true);
target_mc.image_mc.filters = [shadowFilter()]; //тень на плетень
}
mcl.addListener(mclListener);
mcl.loadClip(imagePath,target_mc.image_mc);
}
}
meXML.load(pathToXMLfile);
}
как это сделать? с помощью этой функции и setInterval Или какие в этой функции сделать изменения чтобы последовательно перебирать изображения.. Цикл делал, но он сразу все проскакивает и останавливается на последнем.. Пока не понял что делать, обращаюсь в Вам за помощью.. (рандом не предлагать )
__________________
OMG... we have absolutely no life! (c) |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Для начала нужно перестать объявлять функции друг в друге. meXML достаточно объявить один раз, а в качестве слушателя MovieClipLoader может выступать хоть _root, а не mclListener. secNode есть XMLNode, а не XML.
Что мешает использовать массив childNodes, плюсовать счетчик после загрузки предыдущей картинки и загружать следующую с использованием setInterval? |
|
|||||
|
я не понимаю как использовать setInterval в ДАННОМ случае...
у меня есть массив childNodes, и каждый из элементов - путь к картинке, когда я иду в цикле по массиву, они все просто проскакивают и видно только последнюю. Можно объяснить по-подробнее, пожалуйста, как именно тут использовать setInterval ? Для тупых) о_О
__________________
OMG... we have absolutely no life! (c) |
|
|||||
|
В параметрах функции setInterval можно задать интервал появления картинок...
//вставим слайд
var totalElements:Number;
var arrayElements:Array;
var slideShowID:Number;
var picNum:Number = 0;
var target_mc:MovieClip = _root;
meXML = new XML();
meXML.ignoreWhite = true;
meXML.onLoad = function(success:Boolean){
if(success){
var rootNode:XMLNode = meXML.firstChild;
totalElements = rootNode.childNodes.length;
arrayElements = rootNode.childNodes;
nextPicture();
slideShowID = setInterval(_root, "nextPicture", 1000);
}
}
meXML.load("temp.xml");
function nextPicture() {
if(picNum < totalElements) {
var mcl:MovieClipLoader = new MovieClipLoader();
target_mc.image_mc.removeMovieClip();//удалим контейнер если таковой имеется в наличии.
target_mc.createEmptyMovieClip("image_mc",target_mc.getNextHighestDepth());
var secNode:XML = arrayElements[picNum];
var imagePath:String = secNode.attributes.loc;
//вводим изображение нежно)
var mclListener:Object = new Object();
mclListener.onLoadInit = function() {
resizePict(target_mc,target_mc.image_mc,20);
target_mc.image_mc._x = (target_mc._width - target_mc.image_mc._width)/2;
target_mc.image_mc._y = (target_mc._height - target_mc.image_mc._height)/2;
var imgTween:Object = new Tween(target_mc.image_mc,"_alpha",Back.easeOut,0,100,3,true);
target_mc.image_mc.filters = [shadowFilter()]; //тень на плетень
picNum++;
}
mcl.addListener(mclListener);
mcl.loadClip(imagePath,target_mc.image_mc);
} else {
clearInterval(slideShowID);
}
}
|
|
|||||
|
Я бы перереписал бы все заново, но в данном случае можно так:
Хотя можно picNum как параметр передавать в setInt
__________________
"We Are The Champions My Friends!" Queen |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|