Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-12-2011, 17:50   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
Überprüfung einer Funktion

Hallo zusammen,

habe folgende Funktion:
Code:
function irgendeinefunktion():void {
	test();
trace("weiter");
}
nun hätte ich gern das trace erst ausgeführt wird, wenn test() (bzw. die Programmierung in der Funktion) komplett ausgeführt wurde.

Wie stelle ich das an?

Danke
cosmoses ist offline   Mit Zitat antworten
Alt 12-12-2011, 19:05   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Gegenfrage: was genau hast Du vor?

Welche AS-Version? 3.0 oder?
~pyropete~ ist offline   Mit Zitat antworten
Alt 12-12-2011, 20:07   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
so, und nur so, arbeitet flash. was lässt dich annehmen, dass es anders sei?
und was steht in test?

wenn ich raten müsste, wurde ich vermuten, dass du Events noch nicht verstanden hast.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (12-12-2011 um 20:11 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 12-12-2011, 20:18   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Wenn Du irgendwo asynchrone Abläufe hast (externe Inhalte laden), kannst Du
den Ablauf durch die jew. Callback-Funktionen (z.B. MovieClipLoader.onLoadInit usw.)
beeinflussen.

Zitat:
Zitat von thomas_E Beitrag anzeigen
wenn ich raten müsste, wurde ich vermuten, dass du Events noch nicht verstanden hast.
Im obigen Fall arbeitet Flash sowieso alles nacheinander ab (erst alles was in test steht, dann
den trace).

Von daher muss er Events erstmal nicht kennen ...
~pyropete~ ist offline   Mit Zitat antworten
Alt 12-12-2011, 20:50   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
Ich arbeite mit as3.
Ein Button ruft test auf, wo eine xml geladen und anschließend pro XML-Knoten ein Textfeld erstellt wird. Wenn man den Button wieder betätigt wird, wird innerhalb test überprüft ob die Textfelder schon erstellt wurden, so wird ein wiederholtes Laden der XML verhindert.

Zudem habe ich einen Tween den ich ausführen möchte, sobald alle Textfelder erstellt wurden (im Beispiel vorher habe ich es durch das trace ersetzt). Ich kann den Tween leider nicht an das Ende von test setzten, da ich diesen Tween auch ausführen möchte, wenn die Textfelder schon Existieren.

also im Ganzen würde es ca. so aussehen:
Code:
function clickHandler(evt:MouseEvent):void {
	loadXML("datei.xml");

	if(----wenn die xml geladen wurde oder die Textfelder schon existieren ----)
	var mcTween:Tween = new Tween(mc, "x", Strong.easeOut, mc.x, 0, 2, true);
}
function loadXML(Uri:String):void {
	if(!mc.getChildByName(mc2)) {
---- xml wird geladen und Textfelder erstellt ----
	}}
cosmoses ist offline   Mit Zitat antworten
Alt 13-12-2011, 11:31   #6 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
also, das laden von externen Dateien läuft asynchron ab:
du sagst dem Loader, dass er laden soll, der leiert das an, und der Code läuft weiter (bis zu deinem trace).
Irgendwann (oder auch nie) feuert der ein Event.COMPLETE, und gibt damit an, dass die Daten jetzt da sind, und abgeholt werden können.
wenn der Loader synchron laufen würde, würde diene komplette Anwendung einfrieren, bis die Datei fertig geladen wurde, und wenn die Datei nicht erfolgreich geladen wurde hättest du an der Stelle ein Problem, da dein code weiter wartet. (und nichtmal versucht die Datei neu zu laden)

also, ein grundsätzlicher Aufbau für deinen Code:
(nur eine mögliche Variante)
PHP-Code:
var xmlLoader:URLLoader;
var 
mc:Sprite;
function 
clickHandler(e:MouseEvent):void
{
    if(
mc)
        
effekt();
    else if(!
xmlLoader)
        
loadXML();
}

function 
loadXML():void
{
    
//starte das Laden der XML-Datei
    
xmlLoader = new URLLoader();
    
xmlLoader.addEventListener(Event.COMPLETEonXMLLoaded);
    
xmlLoader.load(new URLRequest("datei.xml"));
}

function 
onXMLLoaded(e:Event):void
{
    
//die XML-Datei wurde geladen
    
mc = new Sprite();    //ein Sprite reicht hier vollkommen aus
    //create Buttons;    
    //pipapo
    
    
effekt();
    
    
//aufräumen nicht vergessen:
    
xmlLoader.removeEventListener(Event.COMPLETEonXMLLoaded);
    
xmlLoader null;
}

function 
effekt():void
{
    new 
Tween(mc"x"Strong.easeOutmc.x02true);

Hier dienen die Variablen xmlLoader auch dazu um anzuzeigen, ob das laden der xml-Datei bereits begonnen hat (nützt ja auch nix die mehrmals paralell runterzuladen, nur weil der User wie ein Irrer auf dem Button rumklickt)


Und mc zeigt auch gleichzeitig an, ob das laden bereits abgeschlossen wurde, und etwas zum Tweenen da ist.

Noch eine Anmerkung: die Flash-eigene Tweening-Klasse ist nicht so dolle. also wenn du paar mehr Tweens verwendest, solltest du dich nach einer Alternative umsehen.
Am verbreitetsten sind TweenLite, Caurina Tweener und Tweensy; aber dazu gibbet eigentlich genügend Beiträge hier im Forum
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 14-12-2011, 16:31   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
Danke, so wollt ichs
cosmoses 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
Überprüfung der Anzahl einer Auswahl GrobiWeltliga PHP und MySQL 11 21-05-2007 10:15
überprüfung einer eingegebenen emailadresse stefann Flash 4 und Flash 5 19 01-04-2007 00:44
überprüfung einer globalen variable suppenhuhn Flash MX 2004 3 01-02-2006 18:36
Ist es möglich die überprüfung in eine weitere funktion zu packen? Flossi ActionScript 1 5 08-12-2004 00:28
Überprüfung einer Emailadresse auf @ und . ? das-essig Flash MX 21 20-09-2004 09:38


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

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


Copyright ©1999 – 2012 Marc Thiele