Форум 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=139152)

Blackjack1616 24.04.2010 16:10

как обратно пролистать?(массивы, кнопки, картинки)
 
Привет! Есть код:

Код AS1/AS2:

picturesArray=["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"];
itemCounterPicture=0;
 
mc = attachMovie("mc","smc",_root.getNextHighestDepth(),{_x:100,_y:100});
mc2 = attachMovie("mc","smc2",_root.getNextHighestDepth(),{_x:200,_y:100});
_root.createEmptyMovieClip("frameForShow",11);
 
function nextImg(){
        mc.onPress=function(){
                frameForShow.loadMovie(picturesArray[itemCounterPicture]);
                itemCounterPicture++;
                trace(itemCounterPicture);
                        if(itemCounterPicture >= (picturesArray.length)){
                                itemCounterPicture=0;
                        }
        }
}
function backImg(){
        mc2.onPress=function(){
                frameForShow.loadMovie(picturesArray[itemCounterPicture]);
                itemCounterPicture--;
                trace(itemCounterPicture);
                        if(itemCounterPicture <= -1){
                                itemCounterPicture=3;
 
                        }
 
        }
}
 
function functionObj(){
        nextImg();
        backImg();
}
 
functionObj();

в этом коде я создаю 2 кнопки и один пустой мувик в который будет загружаться картинки из массива(по нажатию на кнопки).
предполагается, что это простой код, простой галереи с кнопками "назад" и "вперед".

mc - (показывает след. картинку)шагает по массиву в перед(если cначала нажимать на mc2, а потом нажать на mc, то получиться тоже что и с mc2).
mc2 - (показывает предыдущую)должен шагать по массиву назад, но это происходит очень странно(сначала показывается следующая картинка, потом уже он начинает листать назад)

как сделать так, что бы кнопки работали нормально? или почему кнопки себя так ведут(нет, понято, что текущий слайд зависит от значения itemCounterPicture, но, как правильно им управлять, я уверен, что опытные флешеры знают как это просто.)?

АААааа! я себе уже всю голову сломал!

Добавлено через 1 час 42 минуты
блин! или скажите, где есть подобный код, или что почитать, или как это лучше делается?

Добавлено через 1 час 50 минут
я еще пробавал, делать три функции "след.картинка", "предыдущая" и "показ слайдов"

в кнопках, менял значение itemCounterPicture, а в "показСлайдов" с onEnterFrame отслеживал изменения значения itemCounterPicture, но frameForShow.loadMovie(picturesArray[itemCounterPicture]); видемо с onEnterFrame не работает(показывает ошибку).

samana 24.04.2010 18:50

Код AS1/AS2:

picturesArray=["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"];
itemCounterPicture = -1;//для корректной первой загрузки, что бы загрузилось именно 1.jpg
 
mc = attachMovie("mc", "smc", _root.getNextHighestDepth(), {_x:200, _y:100});//тут были не правильные координаты, кнопка "крутить вправо", находилась слева
mc2 = attachMovie("mc", "smc2", _root.getNextHighestDepth(), {_x:100, _y:100});//поменял местами
_root.createEmptyMovieClip("frameForShow",-11);// чтобы копки были выше изображения
//функции которые прокручивают картинки
function nextImg() {
 
        itemCounterPicture++;
 
        if (itemCounterPicture > (picturesArray.length - 1)) {
                itemCounterPicture = 0;
        }
        trace(itemCounterPicture);
        frameForShow.loadMovie(picturesArray[itemCounterPicture]);
 
}
function backImg() {
        itemCounterPicture--;
 
        if (itemCounterPicture < 0) {
                itemCounterPicture = picturesArray.length - 1;
 
        }
        trace(itemCounterPicture);
        frameForShow.loadMovie(picturesArray[itemCounterPicture]);
 
}
//при нажатии кнопок туда-сюда, срабатывают нужные функции
mc.onPress = function() {
        nextImg();
};
mc2.onPress = function() {
        backImg();
};
// при загрузки флешки, первое изображение появляется автоматом
nextImg();

p.s. Лучше для загрузки пользоваться MovieClipLoader

Blackjack1616 24.04.2010 19:49

Большое Тебе спасибо! Все работает, все объяснил!
(ушел на дэмиарт читать про таинственный, всемогущий класс MovieClipLoader)

samana 24.04.2010 19:52

На здоровье!


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

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