Показать сообщение отдельно
Старый 24.04.2007, 17:26
Dessano вне форума Посмотреть профиль Отправить личное сообщение для Dessano Найти все сообщения от Dessano
  № 1  
Ответить с цитированием
Dessano

Регистрация: Aug 2005
Сообщений: 78
Отправить сообщение для Dessano с помощью ICQ
Вопрос. Какой должен быть скрипт для скрола фоток.
Фотки бирутса из ХМЛ файла.
Тоесть есть окошко размером к примеру 500 на 200 и в нем багают картинки слева на право и при MouseOver останавливаются. Собственно кокой для этого должен быть скрипт.

Люди не пенайти, :-) очень надо.

Нашол вот этот скрипт но как работает не разобрался.

Код:
// set random # variables - each must be 0 for first 'while' loop below
var randomNum = 0;
var randomNumLast = 0;

// parent container
var container_mc = this.createEmptyMovieClip("container",0);
// movie clip containers
container_mc.createEmptyMovieClip("loader1_mc",2);
container_mc.createEmptyMovieClip("loader2_mc",1);

// preload watcher
this.createEmptyMovieClip("watcher_mc",100);

// load xml
images_xml = new XML();
images_xml.ignoreWhite=true;
images_xml.onLoad = parse;
images_xml.load("covers2.xml");

function parse(success) {
	if (success) {
		imageArray = new Array();
		var root = this.firstChild;
		_global.numPause = Number(this.firstChild.attributes.timer * 1000);
		_global.order = this.firstChild.attributes.order;
		_global.looping = this.firstChild.attributes.looping;
		_global.fadetime = Number(this.firstChild.attributes.fadetime);
		_global.xpos = Number(this.firstChild.attributes.xpos);
		_global.ypos = Number(this.firstChild.attributes.ypos);
		var imageNode = root.lastChild;
		var s=0;
		while (imageNode.nodeName != null) {
			imageData = new Object;
			imageData.path = imageNode.attributes.path;
			imageArray[s]=imageData;
			imageNode = imageNode.previousSibling;
			s++;
		}
		// place parent container
		container_mc._x = _global.xpos;
		container_mc._y = _global.ypos;
		// parse array
		imageArray.reverse();
		imageGen(imageArray);
	} else {
		trace('problem');
	}
}

// depth swapping
function swapPlace(clip,num) {
	eval(clip).swapDepths(eval("container_mc.loader"+num+"_mc"));
}

function loadImages(data,num) {
	if (i==undefined || i == 2) {
		i=2;
		createLoader(i,data,num);
		i=1;
	} else if (i==1) {
		createLoader(i,data,num);
		i=2;
	}
}
function createLoader(i,data,num) {
	thisLoader=eval("container_mc.loader"+i+"_mc");
	thisLoader._alpha=0;
	thisLoader.loadMovie(data[num].path);
	watcher_mc.onEnterFrame=function () {
		var picLoaded = thisLoader.getBytesLoaded();
		var picBytes = thisLoader.getBytesTotal();
		if (isNaN(picBytes) || picBytes < 4) {
			return;
		}
		if (picLoaded / picBytes >= 1) {
			swapPlace("container_mc.loader2_mc",1);
			alphaTween = new mx.transitions.Tween(thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut,0,100,_global.fadetime,true);
			timerInterval = setInterval(imageGen,_global.numPause,data);
			delete this.onEnterFrame;
		}
	}
}
function imageGen(data) {
	// random, or sequential?
	if (_global.order=="random") {
		// choose random # between 0 and total number of images
		while (randomNum == randomNumLast) {
			randomNum = Math.floor(Math.random() * data.length);
			trace(randomNum);
		}
		loadImages(data,randomNum);
		randomNumLast = randomNum;
	} else if (_global.order=="sequential") {
		// start at 0, increment to total number of images, then drop back to zero when done
		if (p==undefined || p==data.length && _global.looping=="yes") { p=0; } else { break; }
		loadImages(data,p);
		p++;
	} else {
		trace ("order attribute in xml isn't correct - must specify either 'random' or 'sequential'");
	}
	clearInterval(timerInterval);
}
stop();
Его вставлать в Мувиклип и как затем сделать контейнер для этого клипа?

Собственно вопрос отпал сам собой.

Но возник другой.

Скроллер я сделал и картинки ездят туда сюда, но я сделал это таким образом:

Код:
totalWidth = 0;
speed = 2;
logosHolder1.duplicateMovieClip("logosHolder2",this.getNextHighestDepth());
logosHolder2._x = -10000;
totalLogos = 12;
pressable = true;
onEnterFrame = function() {
	if(logosHolder1._x >= 10 && logosHolder2Started != true) {
		logosHolder2._x = 0 - logosHolder2._width;
		logosHolder2Started = true;
		logosHolderStarted = false;
	}
	if(logosHolder2._x >= 10 && logosHolderStarted != true) {
		logosHolder1._x = 0 - logosHolder1._width;
		logosHolderStarted = true;
		logosHolder2Started = false;
	}
}
Тоесть проигравается мувик в котором картинка.

Теперь вопрос в следующем, как сделать что бы этот мувик брал картинки из ХМЛ?


Последний раз редактировалось iNils; 10.11.2007 в 07:18.