开发者

attach a symbol over the xml slide gallery in actionscript 2.0

开发者 https://www.devze.com 2023-01-16 07:53 出处:网络
i\'m editing an actionscript 2.0 file, i have a xml files with images urls in the nodes and it works.

i'm editing an actionscript 2.0 file, i have a xml files with images urls in the nodes and it works.

I have a symbol with id='mysymbol' in the library and it would be great to attach 'mysymbol' over the gallery while other images slide.

i have an empy scene, just this AS 2.0 script and the xml:

import mx.transitions.Tween;
import mx.transitions.easing.*;

var myShowXML = new XML();
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.lineTo(_root.myWidth,0);
    myContainer_mc.lineTo(_root.myWidth,_root.myHeight);
    myContainer_mc.lineTo(0,_root.myHeight);
    myContainer_mc.lineTo(0,0);

    myContainer_mc._x = (Stage.width-myContainer_mc开发者_运维技巧._width)/2;
    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";

        _root.myText_txt.text = "test";

    };

    _root.myPreloader.onLoadProgress = function(target) {

        _root.myText_txt.text = "Loading.. "+_root.myClips_array.length+"/"+_root.myImagesNo+" Completed";

    };


    _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 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 = 0;
    }

    _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);
}

and the XML:

<slideshow width="886" height="334" speed="3">
  <image url="images/image1.jpg" title="Photo 1" />
  <image url="images/image2.jpg" title="Photo 2" />
</slideshow>


look into the swapDepths() method if you need to re-stack items in AS2

0

精彩评论

暂无评论...
验证码 换一张
取 消