Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2004, 16:19   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 36
Question setInterval/timer

xervus.

ich habe auf der bühne u.a. ein textfeld »myStatusText«. dieses wird von verschiedenen funktionen mehr oder weniger regelmäßig upgedatet, um den status zu zeigen. viel mehr passiert das ganze mit events, ist aber eigentlich egal, es funktioniert.

nun habe ich das problem, dass natürlich ein zustand des textes solange stehen bleibt, bis ein neuer kommt. das sieht u.u. nicht nur schäbig aus, sondern passt einstweilen und schlicht nicht mehr zum status der applikation.

ich stelle mir vor, das ein statustext nur einige sekunden stehen bleibt und dann die anzeige auf »bereit« oder so wechselt. dazu müsste ich doch bei jedem ändern des inhalts einen timer starten und bei erreichen einer grenze eben den text zurücksetzen. leider funktioniert das nicht so, wie ich dachte. vielleicht kann mir da jemand helfen, weil ich bisher kläglich daran gescheitert bin.

hier noch der zugehörige code. das ganze passiert in einem objekt, daher das ganze »this« und zeug....


PHP-Code:
// for timing capabilities
private var myTimer;

// diese funktion updatet das textfeld (was geht) und
// startet einen timer (was nicht geht)
function statusListener(eventObject) {
    
_level0.myStatusText.text eventObject.text;
    
this.myTimer setInterval(this.clearTimer(), 3000);
}

// und die soll den statustext zurücksetzen und den timer löschen
function clearTimer() {
    
_level0.myStatusText.text 'ready';
    
clearInterval(this.myTimer);

weder this.clearTimer() noch this.clearTimer bringt da was.
trakitogo ist offline   Mit Zitat antworten
Alt 04-08-2004, 16:24   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
wo hast du dieses script eigentlich stehen...?

außerdem kann das mit dem this nie und nimmer stimmen in einer interval-funktion


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 04-08-2004, 16:36   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 36
hey,
erst mal danke, dass du dich kümmern willst.

der code steht in dem objekt, das bei mir für die ansicht zuständig ist. hier instantiiere ich die verschiedenen komponenten und adde auch alle listener.

die anwendung hat auch noch datenanbindung und sollte modular aufgebaut sein, deshalb hab ich das aufgeteilt. ich weiss, es ist sau-kompliziert und umständlich und das werd' ich nie wieder so machen, aber jetzt läuft es (fast).

insgeamt sind's inzwischen ca. 1200 zeilen geworden... naja.
trakitogo ist offline   Mit Zitat antworten
Alt 04-08-2004, 16:47   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
das steht in der fla?

was hat dann dort private verloren? kp ich net*

aber davon ab ist innerhalb einer interval-funktion der scope auf das interval-objekt gerichtet und auf nix anderes...
also kann ein this.blabla innerhalb der funktion nie und nimmer stimmen...
du kannst dein objekt an die intervalfunktion ja als param übergeben...

außerdem wird an das interval der funktionsNAME !!! übergeben und nicht ein funktionsaufruf...

also:
ActionScript:
  1. this.myTimer = setInterval(this.clearTimer, 3000, this);
  2.  
  3. //und in der funktion
  4. function clearTimer(who){
  5.       _level0.myStatusText.text = 'ready';
  6.       this = who;
  7.       clearInterval(this.myTimer);
  8. }

das sollte gehen...


aber dennoch...was hat das 'private' da verloren...?

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 04-08-2004, 16:58   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 36
hey kelor, du hast völlig recht.
ich hab's grade hingekriegt. musste das ganze mal wieder direkt ansprechen....

ein, das steht nicht in der fla, da hab ich mich ein wenig unglücklich ausgedrückt. die anwendung besteht aus fla + 3 klassen/objekte (mvc), die eben verschiedene aufgaben übernehmen.

und myTimer ist ne private eigenschaft von der view. deshalb der ganze stress. wie gesagt, ich mach's nicht wieder so.

so, hier meine neue signatur:
_____
design pattern suck ass!
trakitogo 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele