галерея последнее исправление изображения - PullRequest
2 голосов
/ 26 декабря 2011

У меня почти есть эта вещь, как я хочу, за исключением случаев, когда я нажимаю вперед или назад по моим изображениям, как только она достигает длины массива, следующие изображения не отображаются. Это только проблема, когда я добавляю метод checkImage (). Кто-нибудь видит, что я не прав?

фикс **

package 
{

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.events.Event;
    import flash.events.MouseEvent;


    import com.greensock.TweenMax;
    import com.greensock.layout.*;
    import com.greensock.loading.LoaderMax;
    import com.greensock.loading.XMLLoader;
    import com.greensock.loading.ImageLoader;
    import com.greensock.events.LoaderEvent;
    import com.greensock.loading.display.ContentDisplay;
    import com.greensock.loading.data.XMLLoaderVars;


    public class Main extends MovieClip
    {

        public var imgHolder:MovieClip;

        private var ls:LiquidStage;
        private var la:LiquidArea;
        private var xml:XMLLoader;
        private var index:int = 0;
        private var images:Array;


        public function Main()
        {
            arrowRight.alpha = arrowLeft.alpha = .5;
            xmlLoader();
        }

        private function xmlLoader():void
        {
            LoaderMax.activate([ImageLoader]);
            xml = new XMLLoader("assets/data.xml", new XMLLoaderVars()
                                                    .name("loader")
                                                    .estimatedBytes(600000)
                                                    .onComplete(xmlLoaded)
                                                    .onProgress(loadProgress));
            xml.load();

        }

        private function xmlLoaded(e:LoaderEvent):void
        {
            trace("Loaded");
            arrowListeners();
            showImage(index);
        }

        private function loadProgress(event:LoaderEvent):void
        {
            progressMC.progressBar.scaleX = event.target.progress;
        }

        private function showImage(index:int):void

        {
            ls = new LiquidStage(this.stage, 1024, 768, 1024, 768);
            la = new LiquidArea(imgHolder, 0, 0, 1024, 768);

            images = LoaderMax.getContent("loader"); 

            imgHolder.addChild(images[index]);

            TweenMax.from(images[index], 1, {alpha:0});
            la.attach(images[index], {scaleMode:ScaleMode.PROPORTIONAL_OUTSIDE, crop:true});


        }

        // BUTTON FUNCTIONS
        private function arrowListeners():void
        {
            arrowRight.addEventListener(MouseEvent.ROLL_OVER, rollOverArrowHandler, false, 0, true);
            arrowRight.addEventListener(MouseEvent.ROLL_OUT, rollOutArrowHandler, false, 0, true);
            arrowRight.addEventListener( MouseEvent.CLICK, showNext );
            arrowLeft.addEventListener(MouseEvent.ROLL_OVER, rollOverArrowHandler, false, 0, true);
            arrowLeft.addEventListener(MouseEvent.ROLL_OUT, rollOutArrowHandler, false, 0, true);
            arrowLeft.addEventListener( MouseEvent.CLICK, showPrev );
        }

        private function rollOverArrowHandler(e:MouseEvent):void
        {
            TweenMax.to(e.currentTarget, 0.5, {alpha:1});
        }

        private function rollOutArrowHandler(e:MouseEvent):void
        {
            TweenMax.to(e.currentTarget, 0.5, {alpha:.5});
        }

        // CLICK LISTENERS
        private function showNext( e:MouseEvent ):void
        {
            index++
            if (index > images.length - 1) 
            {
                index = 0;
            }

            showImage(index);
        }

        private function showPrev( e:MouseEvent ):void
        {
            index--
            if (index < 0) 
            {
                index = images.length - 1;
            }
            showImage(index);
        }

    }
}

1 Ответ

0 голосов
/ 26 декабря 2011

Несколько вещей приходят на ум:

1) index - глобальная переменная, а параметр функции - конфликтующий?

2) в функции checkimage, которую вы передаете в 'index', но ссылаетесь на 0 в getChildAt и RemoveChildAt

3) вы не вызываете showimage в checkimage, если numchildren> 0 истинно

Я бы хотел проследить все это, чтобы разобраться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...