Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-03-2007, 12:34   #1 (permalink)
Neuer User
 
Benutzerbild von hlghyr
 
Registriert seit: Feb 2007
Beiträge: 43
String in Funktion, Array zurück

Hallo Flasher!
Bin langsam aber sicher am verzweifeln.
Ich möchte einer Funktion ein String übergeben und dann soll mir die Funktion ein Array zurückgeben. Doch leider bekomme ich das nicht in die Reihe, denn ich weiß nicht wo ich was falsch mache.
PHP-Code:
function auswahl(nameArray ){
    
var 
picListe = new Array();

    
this.loadVariables(nameArray ".txt");
    
    
this.onData = function(){ 
        
picTitel daten.split(","); 
        for (var 
i=0i<picTitel.length;i++){ 
            
picListe.push(picTitel[i].split("|"));
            
//this["picListe_" + (picListe[i][0])] = new Array();
        
}
        
trace(picListe);//Ausgabe ok
        
return(picListe);
    } 
}

var 
my_var auswahl("Aufteilung");
trace(my_var[0][0]);//Ausgabe undefined 
Erbitte Eure Hilfe!
MfG Helge
hlghyr ist offline   Mit Zitat antworten
Alt 26-03-2007, 12:36   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Timing-Problem - musst halt warten, bis geladen wurde. Außerdem solltest du lieber mit LoadVars() arbeiten.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 26-03-2007, 12:39   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das ausführen der Funktion ist asynchron, die Datei muss doch erst geladen werden.
Darum funktioniert zwar das trace in der Funktion aber nicht nach dem Aufruf der Funktion (Daten sind noch nicht vorhanden).
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 26-03-2007, 13:09   #4 (permalink)
Neuer User
 
Benutzerbild von hlghyr
 
Registriert seit: Feb 2007
Beiträge: 43
Danke für die Antworten.
Ich werde mal versuchen, das was Ihr gesagt habt in die Tat umzusetzen.
MfG Helge
hlghyr ist offline   Mit Zitat antworten
Alt 26-03-2007, 19:38   #5 (permalink)
Neuer User
 
Benutzerbild von hlghyr
 
Registriert seit: Feb 2007
Beiträge: 43
Hallo Flasher!
Habe die Funktion auf LoadVers umgeschrieben, wie es mir geraten wurde. Leider hab ich das time-Problem, wenn es eins ist nicht hinbekommen. Denn ich weiß einfach nicht, wie ich ansetzen soll.
Hier noch mal das neue Script mit den "alten" Problem.
PHP-Code:
function auswahl(nameArray ) {
    
lv = new LoadVars();
    
lv.load(nameArray ".txt",lv);
    
lv.onLoad = function(geladen) {
        if(
geladen){ 
            
meineVariablen this.daten.split(",");
            
trace(meineVariablen[1]); //ok
            
return meineVariablen;
         }
         else {
            
trace("Fehler beim Laden");
}    }    }
        
        
var 
my_var auswahl("Aufteilung");
trace(my_var);    //undefined 
Das Array besteht aus nur 6 Daten.
Was kann ich denn machen, das das Script erst weiter arbeitet wenn die Funktion das Array zurück geliefert hat?
Wär über jede Hilfe dankbar.
MfG Helge
hlghyr ist offline   Mit Zitat antworten
Alt 26-03-2007, 20:31   #6 (permalink)
Neuer User
 
Benutzerbild von hlghyr
 
Registriert seit: Feb 2007
Beiträge: 43
Hallo Flasher!
Habe jetzt am Ende eine while-Schleife eingebaut und mußte feststellen, das es eventuell nicht nur ein time-Problem ist. Denn die Schleife war endlos.
PHP-Code:
.
.
.
var 
my_var auswahl("Aufteilung");
while (
my_var == undefined) {
    
trace("warten");
}
trace(my_var);    //undefined 
weiß denn keiner Rat?
MfG Helge
hlghyr ist offline   Mit Zitat antworten
Alt 27-03-2007, 08:08   #7 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Dazu gibt es einige Beiträge im Forum.
Die Lösung (oder eine Lösung währe) deines Problemes ist, das du einfach noch eine Funktion mit übergibst, der dann die geladenen Daten übergeben werden wenn sie alle da sind.

PHP-Code:
function auswahlnameArrayfunc ) { 
    
lv = new LoadVars(); 
    
lv.load(nameArray ".txt",lv); 
    
lv.onLoad = function(geladen) { 
        if(
geladen){  
            
meineVariablen this.daten.split(","); 
            
trace(meineVariablen[1]); //ok 
            
funcmeineVariablen ); // hier die Funktion aufrufen
            //return meineVariablen; 
         

         else { 
            
trace("Fehler beim Laden"); 
}    }    } 
 
// Daten laden, wenn geladen automatisch die Daten der Funktion a übergeben        
auswahl("Aufteilung"); 

function 
ameineVariablen )
{       
       
tracemeineVariablen  );

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 27-03-2007, 15:53   #8 (permalink)
Neuer User
 
Benutzerbild von hlghyr
 
Registriert seit: Feb 2007
Beiträge: 43
Ich danke Euch für die Antworten!
Die Lösung von rendner[i] ist gut. Jedenfalls hat sie mich auf neue Ideen gebracht.
Mein Ding ist, das ich mal vor über 20 Jahren Basic gelernt hatte und diese damals gelernte Vorgehensweisen endlich mal ablegen muß. Damals gab es sowas wie funktionen, Methoden, Objekte usw.nicht. Da wurde alles Linear mit Entscheidungen, Schleifen und Sprüngen erledigt.
Also nochmals besten Dank
MfG Helge
hlghyr 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 08:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele