Форум 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)
-   -   Слайд-шоу по N картинок (http://www.flasher.ru/forum/showthread.php?t=127138)

Gigo 06.07.2009 17:21

Слайд-шоу по N картинок
 
Суть такова - есть масив в котором храняться изображения надо выстоить изображения один под вторым с неким отступом (например 10px) по X штук (например 7). И зациклить все. + если масив состоит из 10 элементов то 1-й раз показывапет 0-6 элемент, второй 7,8,9,0,1,2,3 и т.д. (ну что бы всегда их было X штук)
После построения была какая то простенькая анимация (ну там плавное появление и исчезновение)
Сам я далек от AS, я больше PHP, а тут такое дело надо зделать ((
Нашел отдельные части которые подходят к задуманому, а вот собрать все вместе головы не хвататет.
Может кто поможет, нашел http://00--00.livejournal.com/76544.html вот такой скриптик
и нашел http://www.flasher.ru/forum/showthread.php?p=782077 не знаю от чего отталкиваться.

Добавлено через 6 часов 56 минут
Придумал облегченную версию идеи.
AS посылает запрос на PHP, оттуда возвращаеться XML с нужной частью масива
т.е. у нас всегда будет в масиве N элементов.
Написал вот так. коряво, но чтото в цикле не получилось зделать
Код AS1/AS2:

var arrpic:Array = ["img/img01.gif","img/img02.gif","img/img03.gif","img/img04.gif","img/img05.gif","img/img010.gif","img/img07.gif"]
var mclLoader:MovieClipLoader = new MovieClipLoader();
var oLoadListener:Object = new Object();
mclLoader.addListener(oLoadListener);
oLoadListener.onLoadInit = function(mcTarget:MovieClip):Void
{
        // работа с изображением
        mcHolder0._y = 0;
        mcHolder1._y = mcHolder0._y + mcTarget._height + 10;
        mcHolder2._y = mcHolder1._y + mcTarget._height + 10;
        mcHolder3._y = mcHolder2._y + mcTarget._height + 10;
        mcHolder4._y = mcHolder3._y + mcTarget._height + 10;
        mcHolder5._y = mcHolder4._y + mcTarget._height + 10;
        mcHolder6._y = mcHolder5._y + mcTarget._height + 10;
        //trace("И его ширина: " + this.mcTarget._height + "\n\r");
};
 
 
mcHolder0.createEmptyMovieClip("mcImage", mcHolder0.getNextHighestDepth());
mclLoader.loadClip(arrpic[0], mcHolder0.mcImage);
 
mcHolder1.createEmptyMovieClip("mcImage", mcHolder1.getNextHighestDepth());
mclLoader.loadClip(arrpic[1], mcHolder1.mcImage);
 
mcHolder2.createEmptyMovieClip("mcImage", mcHolder2.getNextHighestDepth());
mclLoader.loadClip(arrpic[2], mcHolder2.mcImage);
 
mcHolder3.createEmptyMovieClip("mcImage", mcHolder3.getNextHighestDepth());
mclLoader.loadClip(arrpic[3], mcHolder3.mcImage);
 
mcHolder4.createEmptyMovieClip("mcImage", mcHolder4.getNextHighestDepth());
mclLoader.loadClip(arrpic[4], mcHolder4.mcImage);
 
mcHolder5.createEmptyMovieClip("mcImage", mcHolder5.getNextHighestDepth());
mclLoader.loadClip(arrpic[5], mcHolder5.mcImage);
 
mcHolder6.createEmptyMovieClip("mcImage", mcHolder6.getNextHighestDepth());
mclLoader.loadClip(arrpic[6], mcHolder6.mcImage);
 
i=2;
trig_i=1;
this.onEnterFrame = function()
{
if (i>=100) trig_i=0;       
if (i<=1) stop(); //считываем другую XML       
if (trig_i==1) i++;
if (trig_i==0) i--;
if (i==1) element++;
        mcHolder0._alpha=i;
        mcHolder1._alpha=i;
        mcHolder2._alpha=i;
        mcHolder3._alpha=i;
        mcHolder4._alpha=i;
        mcHolder5._alpha=i;
        mcHolder6._alpha=i;
}

т.е. есть mcHolder0 - mcHolder6 мувиков в которые ложаться фотки. Не получаеться равномерно их выставить дуг под другом - может есть желающие помочь, а так же если бы кто подсказал как вышепреведенный пример в цикл запихнуть?
а то все мои потуги
Код AS1/AS2:

for (var i = 0; i<arrpic.length;; i++ ) {
mcHolder+i.createEmptyMovieClip("mcImage", mcHolder+i.getNextHighestDepth());
mclLoader.loadClip(arrpic[i], mcHolder+i.mcImage);       
        }

не работают


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

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