1&1 DSL
Flashhilfe.de - Flash Community

Animation soll per Stop Button angehalten werden [Flash 10]

Forum > ActionScript 3.0 > Animation soll per Stop Button angehalten werden

 


AntwortenRegistrieren Seite1  

 06.11.2009, 15:31 
Beiträge: 104
Registriert: Jul 2009

Animation soll per Stop Button angehalten werden
hallo zusammen,

ich habe mal wieder ein problem das ich nicht lösen kann.
es geht hier um eine Tween animatin die im moment geloopt wird.
jetzt möchte ich gerne das meine animation auch gestoppt werden kann.

button Stop und
button Play wüäre meine vorstellung.
Kann bitte jemand helfen?

mein 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
import caurina.transitions.*;

bild_mc.alpha=0;
text_mc2.alpha=0;
metadata_mc.alpha=0;
loc_text_mc.alpha=0;

var timer:int;

function Tween1():void {
   bild_mc.x=103;
   bild_mc.y=125;
   text_mc2.x=112;
   text_mc2.y=290;
   metadata_mc.x=34;
   metadata_mc.y=236;

   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear"});
   Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4});
   Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3});
   Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4});

   clearInterval(timer);
   timer=setInterval(Tween2,5000);
}

function Tween2():void {
   Tweener.addTween(bild_mc,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});

   Tweener.addTween(text_mc2,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:0, time:1, transition:"linear"x:330, y:220,delay:3});
   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:160, y:230, scaleX:1.4, scaleY:1.4, transition:"linear", delay:3});
   clearInterval(timer);
   timer=setInterval(Tween1,6000);

}

Tween1();
gruß, flo
 06.11.2009, 15:56Re1
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

du könntest ein Boolean erzeugen dass wenn es true ist die tweens einfach weiter loopen

wenn du jetzt den button Stop drückst wird dieses auf false gesetzt und die tweens werden nicht mehr durchgefürht (per if-abfrage)

wenn du wieder auf play drückst erhält die boolean wieder true und die tweens laufen weiter
Die Lösung ist: das Suchen.
LongCrew = 2 people
 06.11.2009, 16:06Re2
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

hallo...und danke für deine schnelle antwort.

ich versuche genau das umzusetzen. ich habe aber keine große erfahrung.

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
import caurina.transitions.*;

var schalter:Boolean = true;

if (schalter==true){
bild_mc.alpha=0;
text_mc2.alpha=0;
metadata_mc.alpha=0;
loc_text_mc.alpha=0;

var timer:int;

function Tween1():void {
   bild_mc.x=103;
   bild_mc.y=125;
   text_mc2.x=112;
   text_mc2.y=290;
   metadata_mc.x=34;
   metadata_mc.y=236;

   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear"});
   Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4});
   Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3});
   Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4});

   clearInterval(timer);
   timer=setInterval(Tween2,5000);
}

function Tween2():void {
   Tweener.addTween(bild_mc,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});

   Tweener.addTween(text_mc2,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:0, time:1, transition:"linear"x:330, y:220,delay:3});
   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:160, y:230, scaleX:1.4, scaleY:1.4, transition:"linear", delay:3});
   clearInterval(timer);
   timer=setInterval(Tween1,6000);

}

Tween1();
}


button.addEventListener(MouseEvent.CLICK, StopMe);
function StopMe(event:MouseEvent):void{
schalter=false;
}


irgendwie geht es nicht. kannst du bitte weiterhelfen?
DANKE
gruß, flo
 
nicht sichtbar bei eingeloggten Mitgliedern
 06.11.2009, 16:47Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
kannst dir ja auch das mal reinziehen, damit könntest du gesamte animationen starten/stoppen....
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 06.11.2009, 16:51Re4
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

hi,

muss ich meine tweens mit TweenMax neu machen?

oder geht auch mit caurina tween
gruß, flo
 06.11.2009, 17:34Re5
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

hallo zusammen,

ich habe es geschafft zu per btn_Play zu starten. jetzt muss noch irgendwie auch gestoppt werden können.
ich krieg einfach nicht hin. bitte um hilfe.

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
55
import caurina.transitions.*;

var schalter:Boolean=true;
btn_stop.buttonMode=true;
btn_stop.addEventListener(MouseEvent.CLICK, StopMe);
function StopMe(event:MouseEvent):void {
   schalter==false;
}

button.buttonMode=true;
button.addEventListener(MouseEvent.CLICK, PlayMe);
function PlayMe(event:MouseEvent):void {
   trace("stopMe");

   if (schalter==true) {
      trace("PlayMe");
      bild_mc.alpha=0;
      text_mc2.alpha=0;
      metadata_mc.alpha=0;
      loc_text_mc.alpha=0;

      var timer:int;

      function Tween1():void {
         bild_mc.x=103;
         bild_mc.y=125;
         text_mc2.x=112;
         text_mc2.y=290;
         metadata_mc.x=34;
         metadata_mc.y=236;

         Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear"});
         Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4});
         Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3});
         Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3});
         Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4});

         clearInterval(timer);
         timer=setInterval(Tween2,5000);
      }

      function Tween2():void {
         Tweener.addTween(bild_mc,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});

         Tweener.addTween(text_mc2,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});
         Tweener.addTween(metadata_mc,{alpha:0, time:1, transition:"linear"x:330, y:220,delay:3});
         Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:160, y:230, scaleX:1.4, scaleY:1.4, transition:"linear", delay:3});
         clearInterval(timer);
         timer=setInterval(Tween1,6000);
      }
      Tween1();

   }

}
gruß, flo
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 06.11.2009, 17:57Re6
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

playButton_Click -> boolean = ture, ruf Fkt PlayTweens auf in dieser Fkt frage ab of Boolean ture ist oder false

play u stop butotn
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
playButton.addEventListener(MouseEvent.CLICK, PlayButton_Click);
playButton.addEventListener(MouseEvent.CLICK, StopButton_Click);


private function PlayButton_Click(event:MouseEvent):void
{
boolean = "true";
PlayTweens();
}

private function StopButton_Click(event:MouseEvent):void
{
boolean = "false";
PlayTweens();
}


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
private function PlayTweens():void
{
if (boolean == ture)
{
//die ganze Play Tween geschichte
}
if (boolean == flase)
{
//tu nix-> play keine tweens
}
}
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 06.11.09 um 18:00 Uhr

 06.11.2009, 17:59Re7
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

ps die var sollte nicht boolean heißen sondern evtl ButtonState -> typDekl. ist dann schon Boolean:)

mfg
seb
Die Lösung ist: das Suchen.
LongCrew = 2 people
 06.11.2009, 18:11Re8
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

hi,

danke für deine hilfe. ich habe es umgesetzt aber leider kann ich nicht stoppen...
woran kann es liegen?

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
55
56
57
58
59
60
61
62
63
64
65
66
import caurina.transitions.*;

var schalter:Boolean;

btn_play.addEventListener(MouseEvent.CLICK, PlayButton_Click);
function PlayButton_Click(event:MouseEvent):void
{
schalter = true;
PlayTweens();
}
btn_stop.addEventListener(MouseEvent.CLICK, StopButton_Click);
function StopButton_Click(event:MouseEvent):void
{
schalter = false;
PlayTweens();
}

function PlayTweens():void
{
if (schalter == true)
{
bild_mc.alpha=0;
text_mc2.alpha=0;
metadata_mc.alpha=0;
loc_text_mc.alpha=0;

var timer:int;

function Tween1():void {
   bild_mc.x=103;
   bild_mc.y=125;
   text_mc2.x=112;
   text_mc2.y=290;
   metadata_mc.x=34;
   metadata_mc.y=236;

   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear"});
   Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4});
   Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3});
   Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4});

   clearInterval(timer);
   timer=setInterval(Tween2,5000);
}

function Tween2():void {
   Tweener.addTween(bild_mc,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});

   Tweener.addTween(text_mc2,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3});
   Tweener.addTween(metadata_mc,{alpha:0, time:1, transition:"linear"x:330, y:220,delay:3});
   Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:160, y:230, scaleX:1.4, scaleY:1.4, transition:"linear", delay:3});
   clearInterval(timer);
   timer=setInterval(Tween1,6000);

}

Tween1();

}
if (schalter == false)
{
//tu nix
}
}

gruß, flo
 06.11.2009, 18:20Re9
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

ich glaub mal wg dem timer da dieser immer wieder aufgerufen wird... ich seh ma des mal an
trace mal am anfang der PlayTweens fkt welchen wert die Boolean hat, dass du überprüf kannst wenn stop gedrückt wird das diese auch wirklich flase hat
Die Lösung ist: das Suchen.
LongCrew = 2 people
 06.11.2009, 18:21Re10
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

bau mal vor dem Timer eine if abfrage ein ob die boolean noch true ist
Die Lösung ist: das Suchen.
LongCrew = 2 people
 06.11.2009, 18:27Re11
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Warum hast du den Timer um die Tween eine bestimmte Zeit zu wiederholen und danach ruft du Tween2 auf welcher auch wiederholt wird oder?

kennst du onComplete die kannst du an deinen Tweens ranhängen und dort könntest du dann den Timer aufrufen z.B.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
  Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear"}, onComplete:fertigTween1());
  Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4, fertigTween1});
  Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3, fertigTween1});
  Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3, fertigTween1});
  Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4}, fertigTween1);

  public funktion fertigTween1():void
{
//hier überprüfen ob der Wert der Var noch true ist mit if-Anweisung
  clearInterval(timer);
  timer=setInterval(Tween2,5000);
}


schau aber lieder nochmla in der api nach wie es genau geht
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 06.11.09 um 18:28 Uhr

 09.11.2009, 10:08Re12
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

schöne guten morgen an alle,

hallo LongCrew... DANKE für deine einsatz am freitag. sorry aber ich musste dringend weg und kam nicht mehr dazu dir zu beantworten.
eine frage zu deine lösung. muss ich beide funktionen abändern?
gruß, flo
 09.11.2009, 10:35Re13
Beiträge: 104
Registriert: Jul 2009

Themenautor/in

Hi,

also...ich habe nochmal umgeschrieben aber leider ohne erfolg.
der play button funktioniert aber der stop nicht. ich weiß nicht woran es liegen kann.

mein 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import caurina.transitions.*;

var schalter:Boolean;
btn_stop.addEventListener(MouseEvent.CLICK, StopButton_Click);
btn_play.addEventListener(MouseEvent.CLICK, PlayButton_Click);
function PlayButton_Click(event:MouseEvent):void {
   schalter=true;
   PlayTweens();
}

function StopButton_Click(event:MouseEvent):void {
   schalter=false;
   PlayTweens();
}

function PlayTweens():void {
   if (schalter==true) {
      bild_mc.alpha=0;
      text_mc2.alpha=0;
      metadata_mc.alpha=0;
      loc_text_mc.alpha=0;

      var timer:int;

      function Tween1():void {
         bild_mc.x=103;
         bild_mc.y=125;
         text_mc2.x=112;
         text_mc2.y=290;
         metadata_mc.x=34;
         metadata_mc.y=236;

         Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:75, y:341, scaleX:0.7, scaleY:0.7, transition:"linear", onComplete:fertigTween1()});
         Tweener.addTween(bild_mc, {alpha:1, scaleX:1.5, scaleY:1.5, x:103, y:222, time:4, onComplete:fertigTween1()});
         Tweener.addTween(text_mc2,{alpha:1, time:1, transition:"linear", delay:3, onComplete:fertigTween1()});
         Tweener.addTween(metadata_mc,{alpha:1, time:1, transition:"linear", x:43, y:236, delay:3, onComplete:fertigTween1()});
         Tweener.addTween(text_mc2,{time:1, x:110, y:238, scaleX:1.1, scaleY:1.1, transition:"linear", delay:4, onComplete:fertigTween1()});
      }
      function fertigTween1():void {
         //hier überprüfen ob der Wert der Var noch true ist mit if-Anweisung
         clearInterval(timer);
         timer=setInterval(Tween2,5000);
      }

      function Tween2():void {
         Tweener.addTween(bild_mc,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3, onComplete:fertigTween2()});

         Tweener.addTween(text_mc2,{alpha:0, time:1, x:330, y:220, scaleX:1, scaleY:1, transition:"linear", delay:3, onComplete:fertigTween2()});
         Tweener.addTween(metadata_mc,{alpha:0, time:1, transition:"linear"x:330, y:220,delay:3, onComplete:fertigTween2()});
         Tweener.addTween(loc_text_mc,{alpha:1, time:1, x:160, y:230, scaleX:1.4, scaleY:1.4, transition:"linear", delay:3, onComplete:fertigTween2()});
         /*clearInterval(timer);
         timer=setInterval(Tween1,6000);*/


      }

      function fertigTween2():void {
         //hier überprüfen ob der Wert der Var noch true ist mit if-Anweisung
         clearInterval(timer);
         timer=setInterval(Tween1,6000);
      }




      Tween1();

   }
   if (schalter==false) {
      //tu nix
   }
}


wer kann mir bitte sagen oder zeigen wie ich das problem lösen kann?
gruß, flo
 09.11.2009, 19:56Re14
Benutzerbild von joe brockerhoff
Beiträge: 83
Wohnort: meerbusch
Registriert: Dec 2002

Deine buttonfunktionen sind ja so richtig gesetzt.
Kenne pers. die Tweener - Klasse noch nicht, aber wenn Du bei dem schalter Wert "false" die Funktion "tue nichts" aufrufst, läuft der ganze Tween-Kram ja noch, die Funktion bewirkt also auch nichts.
Wahrscheinlich mußte dann die addTweens erstmal mit removeTweens entfernen, jedenfalls ist Dein Aufruf so nicht klar.
Hoffe, das hilft weiter, an den Buttons liegts jedenfalls nicht:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var schalter:Boolean;
btn_stop.addEventListener(MouseEvent.CLICK, StopButton_Click);
btn_play.addEventListener(MouseEvent.CLICK, PlayButton_Click);
function PlayButton_Click(event:MouseEvent):void {
   
  schalter=true;
  trace("hier", schalter);
  // PlayTweens();
}

function StopButton_Click(event:MouseEvent):void {
   
  schalter=false;
  trace("hierNicht", schalter);
  //PlayTweens();
}
art 4 internet 4 art
www.artbldg.net
 
Themen
Ähnliche Beiträge zum Thema
Navi Animation mit AS3 [Flash 9] 23.12.2009 - NameNick
Movie Clip Button [Flash CS3] 19.07.2009 - Raptorcss
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de