Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-12-2011, 17:24   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Timer Klasse - wie gebe ich aus?

benutze so timer klasse, um in bestimmte zeit abschnitte ein funktion aufzufen. klappt auch soweit gut.

PHP-Code:
var myTimer:Timer;

function 
myFunktion(e:TimerEvent):void {
    
trace("Tu Irgend Was");
}

function 
timerStart():void {
    
myTimer=new Timer(5*1000);
    
myTimer.addEventListener(TimerEvent.TIMERmyFunktion);
    
myTimer.start();
}

timerStart(); 
mein frage ist, wie kann ich die zeit rückwärt ausgeben, die breits abgelaufen ist, bis erneut funktion aufgerufen wird.
palpalo ist offline   Mit Zitat antworten
Alt 06-12-2011, 18:29   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
zeit rückwärt ausgeben
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 06-12-2011, 18:50   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
zeit rückwärt ausgeben
naja nicht wirklich, sage ich ml so. ich rufe doch in 5s ein funktion. wenn ich ein bt klicke. wenn timer gestartet wird, soll diese 5s aufwärt in einem textfeld bis 0 dargestellt wird.
palpalo ist offline   Mit Zitat antworten
Alt 06-12-2011, 22:55   #4 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
ich kann nur raten, dass du vielleicht einen Countdown willst !?
PHP-Code:
//alles 5 Sekunden
//var t:Timer = new Timer(5000, 1);        //in einem Rutsch
//var t:Timer = new Timer(1000, 5);        //@1fps
//var t:Timer = new Timer(100, 50);        //@10fps
//var t:Timer = new Timer(40, 125);        //@25fps
var t:Timer = new Timer(25200);        //@40fps
    
t.addEventListener(TimerEvent.TIMERtick);
    
t.addEventListener(TimerEvent.TIMER_COMPLETEtimeout);
    
t.start();
    
function 
tick(e:TimerEvent):void
{
    
//var t:Timer = Timer(e.currentTarget);
    
trace("time left:", (t.repeatCount t.currentCount) * t.delay 1000);
}

function 
timeout(e:TimerEvent):void
{
    
trace("Zeit abgelaufen");

@palpalo
Ich hab den Eindruck, deine Ausdrucksweise wird immer schlimmer. Ich meine ich hätte deine Beiträge früher leichter verstanden.

Da macht helfen keinen Spaß, wenn man die Frage nichtmal versteht.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 07-12-2011, 17:09   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Thumbs up

danke euch
palpalo ist offline   Mit Zitat antworten
Alt 10-12-2011, 14:51   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von thomas_E Beitrag anzeigen
ich kann nur raten, dass du vielleicht einen Countdown willst !?
PHP-Code:
//alles 5 Sekunden
//var t:Timer = new Timer(5000, 1);    //in einem Rutsch
//var t:Timer = new Timer(1000, 5);    //@1fps
//var t:Timer = new Timer(100, 50);    //@10fps
//var t:Timer = new Timer(40, 125);    //@25fps
var t:Timer = new Timer(25200);        //@40fps 
wie geht es fps unabhängig? (egal was für ein fps swf datei hat) soll immer in 5 sec was getan werden.
palpalo ist offline   Mit Zitat antworten
Alt 10-12-2011, 16:15   #7 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
ein Timer ist grundsätzlich unabhängig der Bildrate. und alle Angaben da oben laufen 5 Sekunden lang!
der Unterschied ist wie oft das TIMER-Event aufgerufen wird.
bei delay=1000 wird es alle 1000ms == 1Sekunde aufgerufen und das entspricht 1fps
Bei delay=25 wird es alle 25ms aufgerufen und das entspräche 40fps.
aber das ist grundsätzlich unabhängig von der Bildrate, und kommt eher darauf an was du haben möchtest; wie oft die Funktion tick ausgeführt werden soll.

Zitat:
soll immer in 5 sec was getan werden.
ich versteh immer noch nicht was du wirklich willst.
brauchst du jetzt die TIMER-Events, oder interessiert dich nur dass insgesamt 5 Sekunden "gewartet" wird?
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 11-12-2011, 13:30   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von thomas_E Beitrag anzeigen
oder interessiert dich nur dass insgesamt 5 Sekunden "gewartet" wird?
joh, gnau

wie gesagt obere bsp. funktionieren. aber wenn ich bildrate ändere, dann wegen delay dauert abhängig von bildrate mal mehr, mal weniger als 5sec.

immer nach 5s soll timer gestartet werden.
palpalo ist offline   Mit Zitat antworten
Alt 11-12-2011, 15:20   #9 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
wie gesagt obere bsp. funktionieren. aber wenn ich bildrate ändere, dann wegen delay dauert abhängig von bildrate mal mehr, mal weniger als 5sec.
das kann nicht sein, so funktioniert der Timer einfach nicht. Der ist immer unabhängig von der Bildrate.
1*5000ms = 5000ms = 5s
5*1000ms = 5000ms = 5s
50*100ms = 5000ms = 5s
125*40ms = 5000ms = 5s
200*25ms = 5000ms = 5s

jede dieser Varianten läuft insgesamt genau 5 Sekunden. mögliche Fehler (wenn der PC ausgelastet ist) dürften insgesamt im ms-Bereich liegen und höchstens paar Frames unterschied machen; also nichts war du merken dürftest.

Zitat:
joh, gnau ... immer nach 5s soll timer gestartet werden.
Zitat:
wenn timer gestartet wird, soll diese 5s aufwärt in einem textfeld bis 0 dargestellt wird
Zitat:
mein frage ist, wie kann ich die zeit rückwärt ausgeben, die breits abgelaufen ist, bis erneut funktion aufgerufen wird.
das sind für mich 3 unterschiedliche Dinge; also was willst du nun genau?
Ich hab keine Lust mehr zu raten, was du denn meinen könntest, oder auch wie dein Code ausschaut.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (11-12-2011 um 15:25 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 11-12-2011, 18:10   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von thomas_E Beitrag anzeigen
das sind für mich 3 unterschiedliche Dinge; also was willst du nun genau?
Ich hab keine Lust mehr zu raten, was du denn meinen könntest, oder auch wie dein Code ausschaut.
wollte ein slide show einbauen.

so grob abgespeckte code sieht so aus.

PHP-Code:
//
// erstelle ein sprite, der als slideshow animation dient
var top_sprite:Sprite = new Sprite();
top_sprite.graphics.beginFill(0x000000);
top_sprite.graphics.drawRect(0015);
top_sprite.graphics.endFill();
addChild(top_sprite)
top_sprite.visible false;
//
// erstelle image loader
var loader:Loader = new Loader();
addChild(loader);
loader.10;
loader.10;
//
// variable
var bildID:Number=0;
//
// timer objekt
var timer:Timer = new Timer(25200);
//
// bilder array
var bilder:Array = new Array("img1.jpg","img2.jpg","img3.jpg");
//
//
function start():void {
    
timer.addEventListener(TimerEvent.TIMERanimation);
    
timer.addEventListener(TimerEvent.TIMER_COMPLETEnext);
    
timer.start();
}
//
function animation(e:TimerEvent):void{
    
top_sprite.visible true;
    
top_sprite.width = (stage.stageWidth timer.currentCount) * timer.delay 5000;
}
//
function next(e:TimerEvent):void{
       
bildID++;
    if (
bildID >= bilder.length){
        
bildID 0;
    }
    
loader.load(new URLRequest(bilder[bildID]));
    
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESSprogress)
    
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete);
}


function 
complete(evt:Event):void{
    
top_sprite.visible false;
    
timer.start();
}
function 
progress(evt:ProgressEvent):void {
    
top_sprite.visible true;
    
timer.reset();
}


start(); 
es funktioniert auch wie oben.

wenn ich aber timer so ändere
PHP-Code:
var timer:Timer = new Timer(15000); 
mit animation stimmt dann nichts mehr, der lauft wie schnecke langsamm.
Angehängte Dateien
Dateityp: fla slide.fla (34,0 KB, 1x aufgerufen)
palpalo ist offline   Mit Zitat antworten
Alt 12-12-2011, 01:50   #11 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
es funktioniert auch wie oben.
aber?

Zitat:
wenn ich aber timer so ändere
PHP-Code:
var timer:Timer = new Timer(15000); 
mit animation stimmt dann nichts mehr, der lauft wie schnecke langsamm.
weil der Timer einen takt von 1ms nicht halten kann. minimum sind 16ms laut Doku (entsprechen 60fps). und 5000*16ms = 80000ms = 80s

ich vermute du meinst new Timer(5000, 1), nur daran wirst du hier auch keine Freude haben, weil dann dein Balken oben nicht mehr aktualisiert wird.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (12-12-2011 um 02:06 Uhr)
thomas_E 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
Fragen zur Flash-Klasse Timer nexu ActionScript 3 4 26-10-2011 15:36
Speed Hack sichere Timer Klasse Elo ActionScript 3 0 30-09-2010 13:32
Problem mit Timer Klasse bratzz ActionScript 3 4 27-08-2010 14:29
[STUFF] Timer Klasse public Stuff 4 11-08-2007 22:30
Timer Klasse plus Wecker/Alarm Hans meisa ActionScript 2 1 04-05-2007 21:11


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele