(AS3) Pobieranie zdjęć z tablicy

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
Kamilis
Posty: 1
Rejestracja: śr wrz 22, 2010 8:13 pm

(AS3) Pobieranie zdjęć z tablicy

Post autor: Kamilis »

witam, mam problem z slideshowem, polega on na tym, że po utworzeniu tego skryptu (link) i dodaniu skryptu tła (link), nie mogę uzyskać efektu przejścia starego zdjęcia w nowe, aby zamiast jednego tła bąbelek, pobierał z tablicy stare zdjęcie.

Efekt: Slideshow
Plik FLA:slideshow_proba.fla

Kod: Zaznacz cały

import flash.events.Event;

var bg:myBitmapImage = new myBitmapImage(0,0);
var tile:BitmapData = new BitmapData(440,310,false,0);
var rectPattern:Sprite;

var container:Sprite = new Sprite();

var imgArray:Array = new Array("0.jpg", "1.jpg", "2.jpg", "3.jpg", "4.jpg" );
var i:Number = 0;
var t:Number = 0;
var loader:Loader = new Loader();

loader.mask = container;
addChild(container);

var timer = new Timer(200,100);
timer.addEventListener(TimerEvent.TIMER, createMaskBall);
timer.start();

var timerimage:Timer = new Timer(10 * 1000);
timerimage.addEventListener("timer", klaar);
timerimage.start();

loader.load(new URLRequest(imgArray[i]));
addChild(loader);

function createMaskBall(e:Event):void
{
    var maskBall:MaskBall = new MaskBall();
    maskBall.scaleX = 0;
    maskBall.scaleY = 0;
    
    maskBall.x = Math.random() * stage.stageWidth;
    maskBall.y = Math.random() * stage.stageHeight;

    container.addChild(maskBall);

    maskBall.addEventListener(Event.ENTER_FRAME, animateMaskBall);
}

function animateMaskBall(e:Event):void
{
    e.target.scaleX +=  Math.random() * 0.05;
    e.target.scaleY +=  Math.random() * 0.05;
}

function showImg()
{
    loader.load(new URLRequest(imgArray[i]));
    addChild(loader);

    loader.mask = container;
    addChild(container);

    timer = new Timer(200,100);
    timer.addEventListener(TimerEvent.TIMER, createMaskBall);
    timer.start();

    if (i >= imgArray.length - 1)
    {
        i = 1;
    }
    else
    {
        i++;
    }
}

function klaar(event:Event):void
{
    timer.stop();
    while (container.numChildren > 0)
    {
        container.removeChildAt(container.numChildren - 1);
    }
    showImg();
}

function initStage():void
{
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
    fillBG();
}
function fillBG():void
{
    
    tile.draw(bg, new Matrix());
    var matrix:Matrix = new Matrix();
    rectPattern = new Sprite();
    rectPattern.graphics.lineStyle();
    rectPattern.graphics.beginBitmapFill(tile, matrix);
    rectPattern.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
    addChild(rectPattern);
    setChildIndex(rectPattern, 0);
}
initStage();
ODPOWIEDZ