удаление предыдущего изображения - PullRequest
0 голосов
/ 22 декабря 2011

Какой лучший способ удалить старое изображение или изображение, которого там вообще нет?

Я работаю с этим слайд-шоу в формате XML и настроил его так, как хочу, кроме первого изображения, котороенагрузки не исчезают.Как я могу сделать это утверждение лучше?Я тоже пробовал if (previous || imgHolder.numChildren > 0 ) и не работал.Любая помощь?

package 
{
    import flash.display.MovieClip;

    import com.greensock.*;
    import com.greensock.loading.*;
    import com.greensock.events.LoaderEvent;
    import com.greensock.loading.display.*;


    public class Main extends MovieClip
    {

        var xml:XMLLoader;
        var images:Array;
        var current:int = 0;
        var previous:Number;


        public function Main()
        {
            init();
        }

        private function init()
        {
            LoaderMax.activate([ImageLoader]);
            xml = new XMLLoader("xml/gallery.xml",{name:"loader",onComplete:onXmlLoaded});
            xml.load();
        }

        function onXmlLoaded(e:LoaderEvent)
        {
            images = LoaderMax.getContent("loader");
            nextImage(); //nextImage can use image var

        }

        private function nextImage()
        {
            TweenLite.from(images[current],1,{alpha:0, onStart:currentImage, onComplete: updateImage});
        }

        private function currentImage():void
        {
            imgHolder.addChild(images[current]);
        }

        private function updateImage()
        {
            if (previous)
            {
                imgHolder.removeChild(images[previous]);
            }
            previous = current;

            if (current < images.length - 1)
            {
                current++;
            } else
            {
                current = 0;
            }

            TweenLite.delayedCall(2, nextImage);
        }
    }
}

1 Ответ

1 голос
/ 22 декабря 2011

Вы можете манипулировать содержимым массива, чтобы отслеживать текущий и предыдущий индекс слайдов. Первый в массиве - ваш текущий слайд, а последний - предыдущий слайд. Как вы и предполагали, проверка numChildren на вашем imgHolder - это хороший способ проверить, есть ли что-то для удаления.

private function nextImage() : void
{
    TweenLite.from(images[0], 1 , {alpha:0, onStart:currentImage, onComplete:updateImage});
}

private function currentImage():void
{
    imgHolder.addChild(images[0]);
}

private function updateImage() : void
{

    if(imgHolder.numChildren > 1)
    {
        imgHolder.removeChild(images[images.length-1]);
    }

    images.push(images.shift());

    TweenLite.delayedCall(2, nextImage);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...