Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Скрипт для скроллера (http://www.flasher.ru/forum/showthread.php?t=94968)

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

9000
 
Чудесный монолог. А, что, кнопка http://www.flasher.ru/forum/images/r...ttons/edit.gif уже не работает?

Dessano 24.04.2007 20:04

Цитата:

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


Чтобы изображения двигались в контейнере - маска 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.


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

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