Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-10-2005, 20:33   #1 (permalink)
rekursiv definiert
 
Benutzerbild von minimal-ist
 
Registriert seit: Feb 2002
Ort: trier
Beiträge: 1.137
function { function {setInterval [...] } [...] }

guten abend zusammen,

kurze, dumme frage:
verstehe gerade den flash interpreter nitt
habe folgenden aufbau
ActionScript:
  1. function tuWas (){
  2.     function machNochFixWasAnderes();
  3.     .
  4.     .
  5.     .
  6. }
  7. function machNochFixWasAnderes(){
  8.     .
  9.     .
  10.     .
  11.     ... setInterval();
  12. }

nun soll tuWas() erst weiter laufen, wenn der setInterval prozess in machNochFixWasAnderes() abgefrühstück ist ...
tuWas() läuft aber weiter, obwohl machNochFixWasAnderes() noch nicht abgeschlossen ist!

warum!?

wie immer besten dank für jeden hilfreichen tip,
carsten
__________________

optimismus ist nur ein mangel an information!

minimal-ist.de: my little piece of the world wide web
iTouch ...train your brain!
minimal-ist ist offline   Mit Zitat antworten
Alt 21-10-2005, 20:56   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das ist doch immer so, wenn man eine onEnterFrameFunktion irgendwo hat willste doch auch nicht warten bis die fertig ist und dann weiter arbeiten.

Es wird halt deine Funktion ausgeführt und das Intervall erstellt, aber nicht gewartet bis das mal anfängt.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 21-10-2005, 20:58   #3 (permalink)
rekursiv definiert
 
Benutzerbild von minimal-ist
 
Registriert seit: Feb 2002
Ort: trier
Beiträge: 1.137
aber diesem fall würde ich gerne genau das erreichen...
__________________

optimismus ist nur ein mangel an information!

minimal-ist.de: my little piece of the world wide web
iTouch ...train your brain!
minimal-ist ist offline   Mit Zitat antworten
Alt 21-10-2005, 21:44   #4 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
versteh nicht genau, was du erreichen willst...
willst du solange warten, bis die setInterval-function einmal aufgerufen wurde ?
oder wie ?

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 21-10-2005, 21:55   #5 (permalink)
rekursiv definiert
 
Benutzerbild von minimal-ist
 
Registriert seit: Feb 2002
Ort: trier
Beiträge: 1.137
konkret geht es um die positionierung von element innerhalb einer schleife.
um den vorgang, wann welches element bewegt wurde, beobachtbar zu machen, time ich die positionierung mit setinterval.
die function um die es geht sieht so aus:
ActionScript:
  1. function mixUpPlayground() {
  2.     var x = 0;
  3.     var y = 3;
  4.     var i = 0;
  5.    
  6.     playgroundElements.shuffle();
  7.        
  8.     function movElements(){
  9.         if(i<playgroundElements.length){
  10.             posRect(playgroundElements[i],x,y);
  11.             x += 75;
  12.             if ((i+1)%3 == 0) {y += 65; x = 0;}
  13.             i++;
  14.         }
  15.         else {clearInterval(count);};
  16.        
  17.     }
  18.     var count = setInterval(movElements,100);
  19. }
diese function soll nun innerhalb einer weiteren function aufgerufen werden, welche erst nach der positionierung der elemente fortfahren soll.

habe ich ne denkfehler in meinem ansatz!?
__________________

optimismus ist nur ein mangel an information!

minimal-ist.de: my little piece of the world wide web
iTouch ...train your brain!
minimal-ist ist offline   Mit Zitat antworten
Alt 21-10-2005, 22:29   #6 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
ich hab jetzt einfach mal losgetippt...
quick'n dirty und untested.

ActionScript:
  1. var allMoved = false;
  2. var checkID = -1;
  3. var movID = -1;
  4.  
  5. function waitForAllMoved()
  6. {
  7.     mixUpPlayground();
  8.     checkID = setInterval( this, doAllElementsMovedCheck, 100 );
  9. }
  10.  
  11. function mixUpPlayground()
  12. {
  13.         var x = 0;
  14.         var y = 3;
  15.         var i = 0;
  16.        
  17.         playgroundElements.shuffle();
  18.        
  19.         movElements();
  20. }
  21.  
  22. function move()
  23. {
  24.     if( i < playgroundElements.length )
  25.     {
  26.         posRect( playgroundElements[i], x, y );
  27.         x += 75;
  28.  
  29.         if( (i+1)%3 == 0 )
  30.         {
  31.             y += 65; x = 0;
  32.         }
  33.         i++;
  34.        
  35.         return;
  36.     }
  37.  
  38.     allMoved = true;
  39. }
  40.  
  41. function movElements()
  42. {
  43.     movID = setInterval( this, move, 100 );
  44. }
  45.  
  46.  
  47. function doAllElementsMovedCheck()
  48. {
  49.     if( getAllMovedStatus() == true )
  50.     {
  51.         clearInterval( movID );
  52.         clearInterval( checkID );
  53.  
  54.         // your code here
  55.     }
  56. }
  57.  
  58. function getAllMovedStatus() : Boolean
  59. {
  60.     return allMoved;
  61. }
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 22-10-2005, 17:22   #7 (permalink)
rekursiv definiert
 
Benutzerbild von minimal-ist
 
Registriert seit: Feb 2002
Ort: trier
Beiträge: 1.137
danke für den ansatz.

habe mein problem nun aber einfach so gelöst, dass ich die nachfolgenden aktionen in eine weitere function ausgelagert habe welche ich dann innerhalb (am ende) der mixUpPlayground methode aufrufe.

warum flash den interval-vorgang aber in den hintergrund verfrachtet ist mir immernoch schleierhaft: da es sich bei setInterval doch um eine einfach timer methode handelt, sollte es doch mir überlassen sein, ob ich damit den fokusierten oder einen vorgang im hintergrund (für sowas gibt es doch, in anderen sprachen zumindest, multi-threading) steuere!?
__________________

optimismus ist nur ein mangel an information!

minimal-ist.de: my little piece of the world wide web
iTouch ...train your brain!
minimal-ist ist offline   Mit Zitat antworten
Alt 22-10-2005, 21:13   #8 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Tja, threading kann der Flashplayer nicht. Ich weiss nicht, ob ich darüber wirklich unglücklich sein soll. Extrem unangenehmes Programmieren finde ich.
mfg. r
bokel 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 13:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele