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
Werbung
Beiträge: 0
Registriert: Feb 2016


RustyCake#2
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

26.08.2011, 19:47

Servus.
Ich würde das nicht mit der Tween-Klasse von Flash machen, nimm caurina oder tween-light.

Dann brauchts auch keine Timer-Klassse.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
RustyCake#3
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

26.08.2011, 20:01

Hier schnell zusammen genagelt.
So könnte das mit tweener aussehen.

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
//-----------------------------------------------------------------------------------------//
import com.caurina.transitions.Tweener;
import flash.display.MovieClip;
//-----------------------------------------------------------------------------------------//
var mcArray:Array =[rot,blau,gelb,gruen];
var bildNr:uint =0;
var delayT:uint =0;
var memoMc:MovieClip;
//-----------------------------------------------------------------------------------------//
for(var i:uint =0; i<mcArray.length; i++){
     mcArray[i].alpha =0;
}
//-----------------------------------------------------------------------------------------//
function animation(){
    if(memoMc!=null){
     Tweener.addTween (memoMc, {alpha:0, time:0.7,delay:delayT,transition:"easeOutSine"});
  }
  Tweener.addTween (mcArray[bildNr], {alpha:1, time:1,delay:delayT,transition:"easeOutSine",onComplete:nextP});
  function nextP(){
     delayT = 4;
     bildNr <mcArray.length-1 ? bildNr ++: bildNr =0;
     memoMc = this;
     animation();
  }
}
//-----------------------------------------------------------------------------------------//
animation();
//-----------------------------------------------------------------------------------------//
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Alex99#4
Benutzerbild von Alex99
Beiträge: 4
Registriert: Aug 2011

Themenautor/in

28.08.2011, 22:47

ok, danke schon mal, probiere es mal aus ...
Werbung
Beiträge: 0
Registriert: Feb 2016


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

Themenautor/in

28.08.2011, 23:00

Szene 1, Layer 'Actionscript', Frame 1, Line 2   1172: Definition com.caurina.transitions:Tweener could not be found.

ist das ein plugin oder warum kennt flash das nicht (verwende CS5 version 11.0.2.489)
Alex99#6
Benutzerbild von Alex99
Beiträge: 4
Registriert: Aug 2011

Themenautor/in

29.08.2011, 08:27

ok wusste nicht dass man das paket erst hier downloaden muss. jetzt funktioniert es aber vielen dank
Geändert von Alex99 am 29.08.11 um 08:28 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de