{lang: 'de'}
Flashhilfe.de - Flash Community

Slideshow mit actionscript3 [Flash 11]

 


AntwortenRegistrieren Seite1  

Alex99#1
Benutzerbild von Alex99
Beiträge: 4
Registriert: Aug 2011

26.08.2011, 18:04

Hallo,
suche schon die ganze zeit nach einer möglichst eleganten lösung um eine slideshow mit actionscript3 zu erstellen. bin ein absoluter anfänger in sachen AS3. vllt könnt ihr mir helfen. hier erstmal mein bisheriger code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.utils.Timer;
import flash.events.TimerEvent;

//array mit instanznamen (war für für eine schleife gedacht)
var bilder:Array = new Array(Titel, G1, G2, G3, Pic1, Pic2, Pic3, B1, B2, B3, B4, B5, B6);

//alpha wert von allen bildern auf null setzen
Titel.alpha = 0;

G1.alpha = 0;
G2.alpha = 0;
G3.alpha = 0;

Pic1.alpha = 0;
Pic2.alpha = 0;
Pic3.alpha = 0;

B1.alpha = 0;
B2.alpha = 0;
B3.alpha = 0;
B4.alpha = 0;
B5.alpha = 0;
B6.alpha = 0;

//funktion die ein bild langsam ein und wieder ausblendet
function animation(bild){
 
     var timerPause:Timer = new Timer(3000, 1);
        timerPause.addEventListener(TimerEvent.TIMER, doNextTween);
        timerPause.start();
     
     var myTween1:Tween = new Tween(bild, "alpha", None.easeOut, 0, 1, 3, true);
     
     function doNextTween(e:TimerEvent):void{
       var myTween2:Tween = new Tween(bild, "alpha", Strong.easeOut, 1, 0, 3, true);
       timerPause.removeEventListener(TimerEvent.TIMER, doNextTween);
     }
}

//soll die animationen der einzelnen bilder nacheinander abspielen funktioniert aber nur bis zum 2. bild. lösung mit schleife hat nicht geklappt :-(

var timerAnimation:Timer = new Timer(8000, 1);
   timerAnimation.addEventListener(TimerEvent.TIMER, doNext);
   timerAnimation.start();
   
animation(bilder[0]);
      
function doNext(e:TimerEvent):void{
        animation(bilder[1]);
        timerAnimation.removeEventListener(TimerEvent.TIMER, doNext);
}




ich hab die bilder alle auf der bühne positionier und die instanznamen in einem array gespeichert. mein plan sah jetzt so aus die bilder ineinander überzublenden. dafür wird der alpha wert in der funktion "animation()" erst langsam erhöht und dann wieder verringert. das klappt auch sehr gut. jetzt ,muss nur noch diese funktion auf jedes bild angewendet werden und diese dann wiederum nacheinander abgespielt werden. letzteres wollte ich mit einem Timer lösen. doch ich hab gemerkt dass is ja jetzt für jedes einzelne bild einen eventListener für den Timer brauche. und in einer schleife kann man die auch nicht alle automatisch erzeugen oder nicht? habt ihr ne bessere idee wie ich meine slideshow erstellen kann? wichtig ist mir dass ich alle zeiten (vom timer und von den tweens) auch später noch schnell und einfach ändern kann. vielen dank für die hilfe
RustyCake#2
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

26.08.2011, 19:47