Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-02-2012, 16:21   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 11
Timer neu starten nach Click auf Button

Hallo Helfer,

bin ein absoluter Einsteiger, was Actionscript betrifft, und habe ein Problem mit einem Timer. Ich habe einen Tween auf der x-Achse umgesetzt, der alle 5 Sekunden einen der 3 MCs (red_cnt, green_cnt und blue_cnt) von rechts nach links auf die Bühne fahren lässt. Dazu gibt es noch 3 Buttons (red_btn, green_btn, blue_btn), die bei Anklicken ihr MC-Pendant auf die Bühne holen (vgl. den content slider auf FatSak Sitzsäcke und Sitzkissen Online Shop - FatSak - Mehr als nur ein Sitzsack).

Soweit, so gut. Was jetzt aktuell nicht funktioniert und wo ich auch nichts zu finden kann bzw. nicht verstehe, ist folgendes: wenn ich einen Button klicke, fährt zwar das gewünschte Bild auf die Bühne, jedoch zählt der Timer im Hintergrund weiter hoch bis 5 Sekunden, und dann wird direkt wieder das nächste Bild gewechselt. Ich möchte jedoch, dass der Timer bei Klick auf einen Button neu gestartet wird. Ich habe das bereits mit reset usw. versucht, aber ohne Erfolg. Wäre super, wenn mir ein fähiger AS-Programmierer weiterhelfen könnte

Hier mein Code:

ActionScript:
  1. import flash.events.MouseEvent;
  2. import fl.transitions.Tween;
  3. import fl.transitions.easing.*;
  4. import flash.utils.Timer;
  5. import flash.events.TimerEvent;
  6.  
  7. //legt Handcursor auf movie_clips, imitiert Buttoneigenschaft
  8. red_cnt.buttonMode = true;
  9. blue_cnt.buttonMode = true;
  10. green_cnt.buttonMode = true;
  11.  
  12. //Anzeigedauer Content und Tween-Geschwindigkeit
  13. var anzeigedauer = 5000;
  14. var tweendauer = 3;
  15.  
  16. //Startbedingung
  17. var aktuell_cnt = red_cnt;
  18.  
  19. //Timer für Bildwechsel
  20. var myTimer:Timer = new Timer(anzeigedauer,0);
  21. myTimer.addEventListener("timer", changecontent);
  22. myTimer.start();
  23.  
  24. //Funktion für Timerevent heißt "changecontent"
  25. function changecontent(event:TimerEvent):void{
  26.     if (aktuell_cnt == red_cnt) {
  27.     var red_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  28.     var greencontent_in:Tween = new Tween(green_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  29.     aktuell_cnt = green_cnt;   
  30.     }
  31.  else if (aktuell_cnt == green_cnt) {
  32.     var green_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  33.     var bluecontent_in:Tween = new Tween(blue_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  34.     aktuell_cnt = blue_cnt; 
  35.     }
  36.  else {
  37.     var blue_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  38.     var redcontent_in:Tween = new Tween(red_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  39.     aktuell_cnt = red_cnt;
  40.     }
  41. }
  42.  
  43. //Buttons für Benutzerinteraktion
  44. //GRÜNER BUTTON
  45. green_btn.addEventListener(MouseEvent.CLICK, greenClick);
  46. function greenClick(Event:MouseEvent):void{
  47.     var aktuell_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  48.     var greencontent_in:Tween = new Tween(green_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  49.     aktuell_cnt = green_cnt;
  50.    
  51. }
  52.  
  53. //BLAUER BUTTON
  54. blue_btn.addEventListener(MouseEvent.CLICK, blueClick);
  55. function blueClick(Event:MouseEvent):void{
  56.     var aktuell_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  57.     var bluecontent_in:Tween = new Tween(blue_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  58.     aktuell_cnt = blue_cnt;
  59.    
  60.     }
  61.        
  62. //ROTER BUTTON
  63. red_btn.addEventListener(MouseEvent.CLICK, redClick);
  64. function redClick(Event:MouseEvent):void{
  65.     var aktuell_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  66.     var redcontent_in:Tween = new Tween(red_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  67.     aktuell_cnt = red_cnt;
  68.    
  69.     }

Geändert von Brakelkatze (13-02-2012 um 16:25 Uhr)
Brakelkatze ist offline   Mit Zitat antworten
Alt 13-02-2012, 20:28   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
so sollte es doch gehen?
ActionScript:
  1. //ROTER BUTTON
  2. red_btn.addEventListener(MouseEvent.CLICK, redClick);
  3. function redClick(Event:MouseEvent):void{
  4.     var aktuell_out:Tween = new Tween(aktuell_cnt, "x", Strong.easeOut, 0, -120, tweendauer, true);
  5.     var redcontent_in:Tween = new Tween(red_cnt, "x", Strong.easeOut, 120, 0, tweendauer, true);
  6.     aktuell_cnt = red_cnt;
  7.    
  8. timer.reset();
  9. timer.start();
  10.     }
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 14-02-2012, 07:40   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 11
Hallo,

leider funktioniert das nicht, ich erhalte einen Compiler-Error:

"1120: Access of undefined property mytimer."

Was sagt mir die Meldung?

Danke für Eure Hilfe.
Brakelkatze ist offline   Mit Zitat antworten
Alt 14-02-2012, 09:33   #4 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
"1120: Access of undefined property mytimer."
Was sagt mir die Meldung?
das er nichts namens "mytimer" kennt. hast du den vielleicht umbenannt?
edit: myTimer, großes T!

PHP-Code:
//ungetestet
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
 
//Anzeigedauer Content und Tween-Geschwindigkeit
var anzeigedauer 5000;
var 
tweendauer 3;
 
//Startbedingung
var buttons:Array = [red_btngreen_btnblue_btn];
var 
contents:Array = [red_cntgreen_cntblue_cnt];
var 
currentContent:Sprite contents[0];

//Timer für Bildwechsel
var timer:Timer = new Timer(anzeigedauer0);
    
timer.addEventListener(TimerEvent.TIMERshowNext);
    
timer.start();

//legt Handcursor auf movie_clips, imitiert Buttoneigenschaft
var item:InteractiveObject;
for 
each(item in contents)
    
item.buttonMode true;


//Buttons für Benutzerinteraktion
for each(item in buttons)
    
item.addEventListener(MouseEvent.CLICKonBtnClick);
    
function 
onBtnClick(e:MouseEvent):void
{
    
gotobuttons.indexOf(e.currentTarget) );
    
timer.reset();
    
timer.start();
}


//springt zum nächten Objekt in der Liste
function showNext(e:Event=null):void
{
    var 
i:int contents.indexOf(currentContent) + 1;
    
gotoi==contents.length0);
}

//springt zu einer bestimmten Position in der Liste
function goto(index:int):void
{
    if(
index || index >= contents.length) return;
    
    new 
Tween(currentContent"x"Strong.easeOut0, -120tweendauertrue);
    
currentContent contentsindex ];
    new 
Tween(currentContent"x"Strong.easeOut1200tweendauertrue);

__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (14-02-2012 um 09:36 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 14-02-2012, 10:50   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 11
Leute, großartig :-) es funktioniert. Und ich bin echt blind...

Danke vielmals.
Brakelkatze ist offline   Mit Zitat antworten
Alt 14-02-2012, 10:53   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 11
Und Danke Thomas für das Aufzeigen eines gekürzten Quellcodes. Dass man hier irgendwie mit Arrays arbeiten sollte, war mir bewusst, nur fehlt mir da einfach der Hintergrund. Ich brauchs dann auch nicht täglich...

Aber sauber, kann ich viel draus mitnehmen :-)
Brakelkatze ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PopUp nach Button-Click michi82 Flex programmieren 8 24-09-2009 14:55
Hintergrundbilder sollen wechseln nach Click auf jeden Navi Button icubus Flash Einsteiger 1 20-04-2007 13:45
Nach Button Click Symbol zurück verschieben lecra Flash MX 2004 7 12-08-2005 23:57
Kein erneuter Rollover nach Button Click unimatrixone ActionScript 1 5 04-10-2004 14:59
Button soll nach Click bestimmten Zustand haben annette Flash 4 und Flash 5 9 30-03-2002 14:30


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele