Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-08-2003, 13:40   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Bochum
Beiträge: 24
Dumie-Frage: Gültigkeit von Variablen bei Benutzung von Klassen

Ich habe eine Klasse Benutzer, die z.B. die Eigenschaften Username, ID, logInFeedBack hat. Diese Eigenschaften möchte ich innerhalb des gesamten Films durch z.B. meinBenutzer.userName ansprechen können.
Meine Klasse sieht folgendermaßen auf(incl.Loginabfrage):
ActionScript:
  1. function Benutzer(){
  2. //Eigenschaften
  3.  
  4. this.userID=null;
  5. this.userName=null;
  6. this.logInFeedBack=null;
  7.  
  8. //Methoden
  9. this.phpLogIncheck=function(name,pwd){
  10.  trace("1: " + name);
  11.  trace("2: " + pwd);
  12.  myVars = new LoadVars();
  13.  hinUrl ="http://intranet/fla/aufnahmebuch/php/login_checker.php";
  14.  hinVars="pwd="+escape(pwd)+"&name="+escape(name);
  15.  aufRuf=hinUrl+"?"+hinVars;
  16.  myVars.sendAndLoad(aufRuf,myVars,POST);
  17.  myVars.onLoad=function(is_fettich){
  18.   if(is_fettich){
  19.    myArray=this.uebergabe.split("~");
  20.    for (i=0;i<myArray.length;i++){
  21.     if(myArray[0]=="forbidden"){
  22.       logInFeedBack="Kein Zugang mit diesen Eingaben!";
  23.     }else{
  24.       this.userID     =MyArray[0];
  25.       this.userName   =MyArray[1];
  26.       logInFeedback="Sie sind eingeloggt als User:\n\n"+this.userName;
  27.       play();
  28.     }
  29.    }
  30.   }else{
  31.     logInFeedback="Fehler bei der Datenübertragung!";
  32.   }
  33.   trace("3: " + logInFeedBack);
  34.   }
  35.   trace("4: " + logInFeedBack);
  36.  }
  37. }

Die Ausgabe trace("3: ...... hat noch den Variablenwert,
die Ausgabe trace("4: ...... hat schon nicht mehr die Info über den Variableninhalt.
Nach den Initialisierungen:
meinBenutzer=new Benutzer;
meinBenutzer.phpLogIncheck("Namexy","Passwortxy");
schaffe ich es nicht über:
trace (meinBenutzer.logInFeedBack)
an die Variable zu kommen.


Ist zwar alles umständlich ausgedrückt, aber Ihr werdet verstehen, was ich will.
Vielen Dank für Eure Geduld
Detlev
__________________
"Gruß aus Bochum"
wagner-d ist offline   Mit Zitat antworten
Alt 19-08-2003, 14:53   #2 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
hallo

naja poste mal bitte noch den response deines checker-scriptes denn ohne den kann man das sehr schlecht testen

und das bei trace 4 nix da ist ist klar weil das logischerweise vor dem onload ausgeführet wird und da gibts ja noch garnix

aber am besten du postest mal was das script sagt wenn der nutzer ok ist und dann schau ich da gern nochmal rein

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer
tolleiv ist offline   Mit Zitat antworten
Alt 19-08-2003, 21:35   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Bochum
Beiträge: 24
Meine Frage ist eigentlich, wieso ich nicht von der root-Ebene z.B. auf die Objektvariable meinBenutzer.logInFeedBack zugreifen kann.



Das PHP-Script, das die Variablen zurücksendet liefert bei richtiger Eingabe z.B. zurück uebergabe=simsalbim~95


PHP-Code:
/**
*prüft, ob die Paarung user, pwd und betreff in der Tabelle pin vorliegen
*gibt bei Übergabe des Passwortes und Usernamen den Usernamen und die ID zurück
*für betreff=aufnahmebuch
*wird aufgerufen von der LoginSeite des Aufnahmebuches
*/

if(!isset($pconnect_intranet))include("db_pconnect_intranet.php");
$name=utf8_decode(urldecode($name));
$pwd=urldecode(utf8_decode($pwd));
$holmir=mysql_query("select distinct ID, user  from pin 
                     where betreff like 'aufnahmebuch' 
                     and user like trim('$name')
                     and pwd like password('$pwd')"
);
if(
mysql_num_rows($holmir)>0){
  
$textarray=mysql_fetch_row($holmir);
  for(
$i=0;$i<count($textarray);$i++){
    if(
$i==0){
        echo 
"uebergabe=".utf8_encode($textarray[$i]);
    }else{
        echo 
"~".utf8_encode($textarray[$i]);
    }
  }
}
else echo 
"uebergabe=forbidden";
mysql_close($pconnect_intranet); 
mfG
Detlev
__________________
"Gruß aus Bochum"

Geändert von wagner-d (19-08-2003 um 21:36 Uhr)
wagner-d ist offline   Mit Zitat antworten
Alt 19-08-2003, 21:38   #4 (permalink)
dummschnack
 
Benutzerbild von Chino
 
Registriert seit: Mar 2002
Ort: Essen
Beiträge: 1.778
Nur ein Tippfehler? Hab mir jetzt nicht alles genau angeschaut, aber es müsste heissen:

ActionScript:
  1. // Attention: --> ()
  2. meinBenutzer=new Benutzer();

Gruss, Chino
Chino ist offline   Mit Zitat antworten
Alt 20-08-2003, 06:29   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Bochum
Beiträge: 24
Das war nur ein Schreibfehler, der nicht im Script auftaucht.


Detlev
__________________
"Gruß aus Bochum"
wagner-d ist offline   Mit Zitat antworten
Alt 20-08-2003, 06:40   #6 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
hallo

was nu ? poste mal bitte noch die positiv-antwort deines scriptes sonst wirds schwer

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer
tolleiv ist offline   Mit Zitat antworten
Alt 20-08-2003, 07:00   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Bochum
Beiträge: 24
wie gesagt, die Positivantwort des PHP Skriptes ist z.B. wenn durch die Eingabe von Usernamen und Passwort die Datenbank einen passenden Eintrag liefert.
Ich sende dann an das AS zurück
uebergabe=[Username]~[ID-Nummer]
uebergabe=simsalabim~95

Das Action Script soll dann dem Objekt meinBenutzer die Eigenschaft userID, userName und ein logInFeedBack geben:

this.userID =MyArray[0];
this.userName =MyArray[1];
this.logInFeedback="Sie sind eingeloggt als User:\n\n"+this.userName;
play();

(Auch schon mit und ohne this probiert).

Innerhalb der Funktion sendet:
trace("3: " + logInFeedBack);
auch die richtigen Daten, die ich aber leider nicht außerhalb (mein Film ist schon auf die root-Ebene reduziert) als Objetkeigenschaft abrufen kann.

Detlev
Detlev
__________________
"Gruß aus Bochum"
wagner-d ist offline   Mit Zitat antworten
Alt 20-08-2003, 07:59   #8 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
Smile

ok habs bei mir sieht es so aus und es geht

ActionScript:
  1. function Benutzer(){
  2.         //Eigenschaften       
  3.         this.userID=undefined;
  4.         this.userName=undefined;
  5.         this.logInFeedBack=undefined;       
  6.         //Methoden
  7.         this.phpLogIncheck=function(obj,name,pwd){
  8.                 trace("1: " + name);
  9.                 trace("2: " + pwd);
  10.                 obj.myVars = new LoadVars();
  11.                 hinUrl ="checker.php";
  12.                 hinVars="pwd="+escape(pwd)+"&name="+escape(name);
  13.                 aufRuf=hinUrl; //+ "?" + hinVars;   
  14.                 obj.myVars.sendAndLoad(aufRuf,obj.myVars,"POST");
  15.                 obj.myVars.onLoad=function()
  16.                 {
  17.                     this.myArray=this.uebergabe.split("~");
  18.                     if(this.myArray[0]=="forbidden"){
  19.                         logInFeedBack="Kein Zugang mit diesen Eingaben!";
  20.                      }else{
  21.                         obj.userID     = this.myArray[0];
  22.                         obj.userName   = this.myArray[1];
  23.                         obj.logInFeedback="Sie sind eingeloggt als User:\n\n"+obj.userName;
  24.                         obj.play(); //?wozu?
  25.                       }                     
  26.                       trace("3: " + obj.logInFeedBack);
  27.                  }             
  28.         }
  29. }
  30. meinBenutzer=new Benutzer();
  31. meinBenutzer.phpLogIncheck(meinBenutzer,"Namexy","Passwortxy");

was raus ist :
(1) das is_fertisch weil is kA hatte woher du das nimmst und es auch irgendwie wenig sinn macht und dementsprechend auch die if() abprüfung dieser variable
(2) die for Schliefe weil du kein einziges mal was mit der Zählervariable gemacht hast
(3) trace("4"...) weil der sinnlos ist - der wurde ausgeführt obwohl das onLoad der variablen noch lange nicht durch war

was anders ist :
(1) der funktionsausruf - der Parameter obj sichert den Zugriff auf das Benutzerobjekt um dirket damit arbeiten zu können
(2) der "aufruf" da ich mit einer stinknormalen ASCII Datei gearbeitet hab und net mit dem php script konnte der query erstmal nicht dranbleiben aber das ist ja fast egal

was mich interessieren würde wozu du dieses play() nimmst.

ich hoffe das hat geholfen

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer

Geändert von tolleiv (20-08-2003 um 08:01 Uhr)
tolleiv ist offline   Mit Zitat antworten
Alt 20-08-2003, 09:32   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Bochum
Beiträge: 24
um es in PHP zu sagen:
PHP-Code:
for($i=0;$i<1000;i$++){
echo 
"Danke \n";

Das play() war noch eine Altlast weil ich ein bestehendes Script in OOP umbasteln wollte.

Wie gesagt, Danke
Detlev
__________________
"Gruß aus Bochum"
wagner-d ist offline   Mit Zitat antworten
Alt 20-08-2003, 12:17   #10 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
null problemo

eleganter wirds wenn du die funktion als prototype definierst dann kannste evt. das obj auch weglassen glaub ich

naja aber wenn so funzt freut es mich das ich helfen konnte

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer
tolleiv 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 04:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele