PDA

Просмотр полной версии : Скрипт для скроллера


Dessano
24.04.2007, 17:26
Вопрос. Какой должен быть скрипт для скрола фоток.
Фотки бирутса из ХМЛ файла.
Тоесть есть окошко размером к примеру 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;
}
}


Тоесть проигравается мувик в котором картинка.

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

MINASTIS
24.04.2007, 19:12
Это из разряда "поешьте за меня ложкой эту кашу"? Не будут же тебе здесь расписывать по строчке и разжевывать этот код. Нашел исходник - читай, проверяй, эксперементируй.


Чтобы изображения двигались в контейнере - маска 500x500, движение, перед этим загрузка всех картинок и на расстоянии друг их от друга просто в одну сторону двигаешь. И допустим скрипт работает если допустим

if (!rolled) {
скрипт
}


И чтобы останавливалось пишешь например

this.onRollOver = function () {
rolled = true;
}
this.onRollOut = function () {
rolled = flase;
}



Делаешь узлы в xml, с ссылками на изображениями. И все их загружаешь.

iNils
24.04.2007, 19:12
Чудесный монолог. А, что, кнопка http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif уже не работает?

Dessano
24.04.2007, 20:04
Это из разряда "поешьте за меня ложкой эту кашу"? Не будут же тебе здесь расписывать по строчке и разжевывать этот код. Нашел исходник - читай, проверяй, эксперементируй.


Чтобы изображения двигались в контейнере - маска 500x500, движение, перед этим загрузка всех картинок и на расстоянии друг их от друга просто в одну сторону двигаешь. И допустим скрипт работает если допустим

if (!rolled) {
скрипт
}


И чтобы останавливалось пишешь например

this.onRollOver = function () {
rolled = true;
}
this.onRollOut = function () {
rolled = flase;
}



Делаешь узлы в xml, с ссылками на изображениями. И все их загружаешь.

Народ помогите, вот ссылка на файло:
http://www.buddhism.ee/scroll.rar

Фаил вроде приатачил ХМЛ но ни в какую нехочет рабоать....

Очень прошу :-)

Люююдиии ну гляньти кому не лень...

iNils
25.04.2007, 17:10
Dessano получает плюс за игнорирование замечаний модератора о кнопке Изменить.

MINASTIS
25.04.2007, 21:26
Что-то не вижу как ты его "приаттачил". В коде он даже не указан...
Скроллинг работает нормально, что не так?

Если ты дал исходник чтобы тебе с нуля с xml сделали -> Вакансии.

А так изучай объект XML. Для этого: Исходники на сайте, Help(f1), книги по AS.