ActionScript3: Animasyonu Geciktirme ve Smooth Efekti Verme

Flash - ActionScript3: Animasyonu Geciktirme ve Smooth Efekti Verme ...

Cevapla
ActionScript3: Animasyonu Geciktirme ve Smooth Efekti Verme
stormturk isimli Üye şimdilik offline konumundadır

stormturk

Webmaster / Ankara

Dosya23

ActionScript3: Animasyonu Geciktirme ve Smooth Efekti Verme

Alt 19-03-2012 #1
Sponsorlu Bağlantılar

merhaba arkadaşlar,

hazırladığım banner'da actionscript yoluyla ekrana yazı getiriyorum. ancak bu yazının gelişini birkaç saniye ertelemem ve gözüktükten birkaç saniye sonra da yazıyı silmem lazım.

timer ya da interval kullandığımda yazıyı getiriyorum ve bir süre sonra siliyorum, ancak banner'da resimler döngü içerisinde olduğundan ilk resimden sonra timer ya da interval çalışmıyor.

kod şu şekilde:

public class ImageRotator extends Sprite
{
private var ... ; //Some variables

public function ImageRotator(xmlPath:String = "images.xml", interval:int = 8301):void
{
    timer = new Timer(interval);
    loadXML(xmlPath);
}

private function loadXML(file:String):void
{
    urlLoader = new URLLoader(new URLRequest(file));
    urlLoader.addEventListener(Event.COMPLETE, par***ML);
}

private function par***ML(e:Event):void
{
    xml = new XML(e.target.data);
    loadImages();
}

private function loadImages():void
{
    for (var i:int = 0; i < xml.children().length(); i++)
    {
        var loader:Loader = new Loader();
        loader.load(new URLRequest(xml.children()[i][email protected]));
        imagesVector.push(loader);
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, sortImages);
    }
}

private function sortImages(e:Event):void
{
    imagesCounter++;

    for (var i:int = 0; i < imagesVector.length; i++)
    {
        imagesVector.reverse();
        addChild(imagesVector[i]);
    }

    if (imagesCounter == imagesVector.length)
    {
        createInfoPanel();
        timer.addEventListener(TimerEvent.TIMER, autoChange);
        timer.start();
    }

}

private function createInfoPanel():void
{
    infoPanel.graphics.beginFill(0x000000, 0.0);
    infoPanel.graphics.drawRect(0, 0, 967, 138);
    infoPanel.graphics.endFill();

////burada 2 saniye gecikmeyle addInfoPanel() fonksiyonunu çağırmam,
////burada da 2 saniye daha sonra removeInfoPanel() fonksiyonunu çağırmam gerekli.

////daha sonra da infoPanel'i ekrana ekliyorum zaten
    addChild(infoPanel);
}

private function addInfoPanel():void {
    titleField.text = xml.children()[infoCounter]. @ title;
    titleField.x = 425;
    titleField.y = 0;

    description.text = xml.children()[infoCounter]. @ description;
    description.x = 427;
    description.y = 26;

    infoPanel.y = 300;
    infoPanel.addChild(titleField);
    infoPanel.addChild(description);
}

private function removeInfoPanel():void {

    infoPanel.removeChild(titleField);
    infoPanel.removeChild(description);
}

private function addActions():void
{
    //Some function
}

private function changeImage(e:MouseEvent):void
{
    //Image changing function
}

private function changeDepth(e:TweenEvent):void
{
    //Some function
}

private function autoChange(e:TimerEvent):void
{
    //Some function
}
}
yukarıdaki kod örneği temizlenmiş hali. interval'i aşağıdaki şekilde kullanıyordum:

private function createInfoPanel():void
{
    //lines above code sample
    intervalInfoPanel = setInterval(addInfoPanel,2000);

    addChild(infoPanel);
}

private function addInfoPanel():void {
    //lines above code sample
    clearInterval(intervalInfoPanel);
    intervalInfoPanelRemove = setInterval(removeInfoPanel,3500);
}

private function removeInfoPanel():void {
    //lines above code sample
    clearInterval(intervalInfoPanelRemove);
}
ve söylediğim gibi bu şekilde kullanınca birinci kullanımdan sonra clear yaptığım için tekrar gelmiyordu...

bir de tweenlite kullandım, aşağıdaki kodu denedim:
TweenLite.delayedCall(2, addInfoPanel);
TweenLite.delayedCall(4, removeInfoPanel);
ama bunda da bir kez gözüküyor, sonra bir daha gelmiyor.

aynı şekilde yazıyı ekrana getirirken smooth efekti vermek istiyorum.
tweenlite kullandım şu şekilde:
titleField.alpha = 0;
TweenLite.to(titleField, 1.0, { alpha: 1 });
herhangi bir uyarı vermiyor ama ekranda gözükmüyor da...

yardımcı olacak arkadaş varsa kaynak dosyalarını da paylaşabilirim.
Bu mesajdan alıntı yap
Sponsor Links

Grafikerler.net Reklamları

Cevapla

Tags
actionscript, flash

Benzer Konular
Konu Konu Bilgileri Forum Cevaplar Son Mesaj
Balık sırtı efekti verme HAKKANEN4 Cinema 4D 6 07-04-2011 14:50:07
Photoshopta Uzay Efekti Verme İmhoteph Photoshop Dersleri 8 11-12-2010 21:38:36
Resme Blur Efekti Verme alone d. walker Photoshop Soru ve Sorunlarınız 2 13-06-2010 10:25:55
Resme rüya efekti verme ulashkral Photoshop Dersleri 3 15-04-2010 21:42:31
photoshopla ışık efekti verme mzorlu Photoshop Dersleri 11 13-03-2010 12:28:33

Kapat
Şifremi Unuttum?