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

lamer6666 24.11.2010 11:27

Слайд шоу и кнопка
 
Доброго времени суток уважаемые.
Нашел в интернет пример реализации слайд шоу:
Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
var format:TextFormat = new TextFormat();
myShowXML.ignoreWhite = true;
myShowXML.load("slideshow.xml");
 
 
myShowXML.onLoad = function() {
        _root.myWidth = myShowXML.firstChild.attributes.width;
        _root.myHeight = myShowXML.firstChild.attributes.height;
        _root.mySpeed = myShowXML.firstChild.attributes.speed;
 
        _root.myImages = myShowXML.firstChild.childNodes;
        _root.myImagesNo = myImages.length;
 
        createContainer();
        callImages();
 
};
 
 
function createContainer() {
        _root.createEmptyMovieClip("myContainer_mc",1);
        myContainer_mc.lineStyle(5,0x9A7C53,100);
        myContainer_mc.lineTo(_root.myWidth,0);
        myContainer_mc.lineTo(_root.myWidth,_root.myHeight);
        myContainer_mc.lineTo(0,_root.myHeight);
        myContainer_mc.lineTo(0,0);
        myContainer_mc.
        myContainer_mc._x = 0;
        myContainer_mc._y = (Stage.height-myContainer_mc._height)/2;
}
 
function callImages() {
 
        _root.myMCL = new MovieClipLoader();
        _root.myPreloader = new Object();
        _root.myMCL.addListener(_root.myPreloader);
 
        _root.myClips_array = [];
 
        _root.myPreloader.onLoadStart = function(target) {
 
                _root.createTextField("myText_txt",_root.getNextHighestDepth(),0,0,100,20);
                _root.myText_txt._x = (Stage.width-_root.myText_txt._width)/2;
                _root.myText_txt._y = (Stage.height-_root.myText_txt._height)/2;
                _root.myText_txt.autoSize = "center";
format.font = "Romul";
format.color = 0xFFFFFF;
format.size = 32;               
_root.myText_txt.setNewTextFormat(format);
//_root.myText_txt.text = "Добро пожаловать!";
 
        };
 
_root.myPreloader.onLoadProgress = function(target)
{
                _root.myText_txt._x = (Stage.width-_root.myText_txt._width)/2;
                _root.myText_txt._y = (Stage.height-_root.myText_txt._height)/2;
                _root.myText_txt.autoSize = "center";
format.font = "Romul";
format.color = 0xFFFFFF;
format.size = 32;               
_root.myText_txt.setNewTextFormat(format);
_root.myText_txt.text = "Загрузка...";
};
 
        _root.myPreloader.onLoadComplete = function(target) {
                _root.myClips_array.push(target);
                target._alpha = 0;
 
                if (_root.myClips_array.length == _root.myImagesNo) {
 
                        _root.myText_txt._y = myContainer_mc._y + myContainer_mc._height;
                        _root.target_mc = -1;
                        moveSlide();
                        myShowInt = setInterval(moveSlide, (_root.mySpeed*1000)+1000);
 
                }
 
        };
 
        for (i=0; i<_root.myImagesNo; i++)
        {
                temp_url = _root.myImages[i].attributes.url;
                temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth());
                _root.myMCL.loadClip(temp_url,temp_mc);
        }
 
}
function moveWate() {current_mc1 = _root.myClips_array[_root.target_mc];}
function moveSlide() {
 
        current_mc = _root.myClips_array[_root.target_mc];
        new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true);
 
        _root.target_mc++;
 
        if (_root.target_mc>=_root.myImagesNo) {
                _root.target_mc = 1;
        }
 
        _root.myText_txt.text = _root.myImages[target_mc].attributes.title;
        next_mc = _root.myClips_array[_root.target_mc];
        new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true);
 
}

Все работает, теперь необходимо добавить кнопку на этот слайд проигрыватель, но кнопка остаться всегда позади загружаемой картинки, прошу помощи.
С уважением Lamer6666

Добавлено через 24 часа 43 минуты
:wacko:
Народ, прошу помощи

cv' 26.11.2010 13:05

Вам нужно содать два контейнера на разных глубинах. В одном будет кнопка, а в другом ваша галерея. А вообще, пример не самый лучший. Использование _root, и присваивание ему переменных - это не очень хорошая практика, так как ваш _root может оказаться чем-то другим, например если одна флешка заргужается в другую.

lamer6666 26.11.2010 17:14

Я новичок, поэтому спасибо за рекомендации и ответ, сейчас буду разбираться.

Добавлено через 40 минут
А можно хотя бы ссылочку на пример или сам пример!

lamer6666 07.12.2010 15:22

Народ, ну поможте пожалуйста.
Для кнопки написал функции анимации
Код AS1/AS2:

function ZoomIn() {
    this.onEnterFrame=function() {if (this._xscale<120) {this._xscale+=2;this._yscale+=2;}}}
 
function ZoomOut() {
    this.onEnterFrame=function() {
        if (this._xscale>100) {
            this._xscale-=2;
            this._yscale-=2;
 
        }
 
}
}
 
b1.onRollOver=ZoomIn;
b1.onRollOut=ZoomOut;
b1.onRelease=function(){getURL("http://www...");};
b1.swapDepths(b1._parent.getNextHighestDepth());
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
var format:TextFormat = new TextFormat();
myShowXML.ignoreWhite = true;
myShowXML.load("slideshow.xml");

но не могу никак разобраться со слоями!
Что куда дописать то?

dark256 07.12.2010 16:08

b1 - это именно КНОПКА или КЛИП?
С кнопками swapDepths - не работает. Вставьте кнопку внутрь клипа.

lamer6666 07.12.2010 17:37

b1 в Properties у меня установлен как MovieClip. При двойном щелчке попадаю в Tween1 и там стоит картинка моей кнопки.

dark256 07.12.2010 17:42

Если b1 лежит на _root, или там к примеру на _level0, то у ней НЕТ parent и соотв вызов
b1._parent.getNextHighestDepth() - не будет работать, и глубина не изменится.

lamer6666 07.12.2010 17:52

Хм, а как узнать где она лежит.
Я делал так:
1. В библиотеку добавил объект BitMap,
2. Кинул его на рабочую область
3. Зашел в Properties там назначил имя и установил что это MovieClip

dark256 08.12.2010 18:56

В целом - визуально, вы не поверите :)
Как-то мне словами это не передать.
У вас же среда WYSIWYG вообще-то.


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

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