Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-10-2011, 13:50   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 105
Kleines Klassenproblem

Hi Leute,

ich wollte mich derzeit mehr in die klassen und methoden in As3 einarbeiten, bin auch schon weit gekommen, aber ich bin da auf ein kleines Problem gestoßen.

Undzwar sollte in eine swf eine E-Mail Adresse eingegeben werden, diese sollte an eine klasse geschickt werden, die wiederumg eine php datei auffordert, auf deren Rückmeldung wartet und wiederum der klasse bescheid gibt.

Diese Klasse sollte jetzt aber auch noch dem Hauptfilm Bescheit geben (return true) wie im folgenden Code zu sehen:

PHP-Code:
package com.drunken  {
    
    
import flash.events.Event;
    
import flash.net.URLVariables;
    
import flash.net.URLRequest;
    
import flash.net.URLRequestMethod;
    
import flash.net.URLLoader;
    
    public class 
phpAndBack {
        
        
/////    PARAMETER ZUR ÜBERGABE
        
public static var parameter;
        
/////    PHP-FILE
        
public static var file;
        
/////    RETURN VARIABLE
        
public static var phpReturn;
        
        public function 
phpAndBackMail(parameterfile) {
            
            var 
phpUrlRequest:URLRequest = new URLRequest(file); 
            
phpUrlRequest.method URLRequestMethod.POST
            
            
var phpVarRequest:URLVariables = new URLVariables(); 
            
phpVarRequest.parameter parameter;
            
            
phpUrlRequest.data phpVarRequest
            
            var 
phpLoader:URLLoader = new URLLoader (phpUrlRequest);
            
phpLoader.addEventListener(Event.COMPLETEonComplete);
            
phpLoader.load(phpUrlRequest);
            
        
            function 
onComplete (event:Event)
            {
                
///////////////////////////////////////////////////////////////////////////
                ///////////////////////////////////////////////////////////////////////////
                ///////////////            WAS AUSGEWERTET WERDEN SOLL                ///////////
                    
                    
return true;
                
                
///////////////////////////////////////////////////////////////////////////
                ///////////////////////////////////////////////////////////////////////////
            
}
            
            
            return 
this.msg;
            
        }

    }
    


Aber der Hauptfilm bekommt diesen return nicht. Evtl. weil er nicht auf das onComplete Event wartet?!

Sollte/Könnte man es anders lösen?


Für Tipps, Anregungen und kostruktive Kritik bin ich sehr dankbar

Gruß,
Drunken
Drunkenmunkey ist offline   Mit Zitat antworten
Alt 27-10-2011, 13:58   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von Drunkenmunkey Beitrag anzeigen
Sollte/Könnte man es anders lösen?
man muss ;-)
das ganze heisst 'asynchron'

man kann/ will nicht den ganzen betrieb aufhalten, nur weil einer die türe nicht zu bekommt.
der sinn von events ist der, auf ereignisse zu reagieren. ein ereignis ist, wenn das laden beendet wurde, also: onComplete
dieses ereignis wurde aber nicht von deinen programmen ausgelöst, sondern vom betriebssystem. also wohin sollte da ein return gehen?

bitte typisiere deine variablen!

- du kannst z.b. in onComplete eine funktion aufrufen, die für die weiterverarbeitung zuständig ist.
- wenn phpLoader public wäre, könntest du das addEventListener dort anhängen wo deine weiterbearbeitung statt findet
- oder z.b. in onComplete ein eigenes event dispatchen, auf das andere teile deines programmes warten.
- auch eine lösung: du kannst z.b. auch eine referenz auf eine funktion mitgeben
public function phpAndBackMail(parameter:Object, file:String, callback:Function):void {
...
phpLoader.addEventListener(Event.COMPLETE, callback);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-10-2011 um 14:05 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-10-2011, 14:15   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 105
Hi hgseib,

das hört sich auf jeden Fall logisch an!
Danke schon einmal dafür!

Das Ding ist ja nur, das ich per Aufruf:

var objhpAndBack = new phpAndBack();
[AUSGABE].text = obj.phpAndBackMail([EINGABE].text, 'php/checkStatement.php');

quasi eine Rückmeldung erwarte, ob die E-Mail gesendet wurde oder nicht. (true/false)

Die Frage die sich mir stellt ist nur, wie?


Und was meinst du mit einem eigenen Event dispatchen.
Heist das, das die Klasse dem Hauptfilm etwas mitteilt?

Gruß,
Drunken
Drunkenmunkey ist offline   Mit Zitat antworten
Alt 27-10-2011, 14:48   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 105
Nochmals Danke!

Werde die möglichkeiten gleich mal durchspielen! ,)

Gruß,
Drunken
Drunkenmunkey ist offline   Mit Zitat antworten
Alt 27-10-2011, 15:24   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von Drunkenmunkey Beitrag anzeigen
quasi eine Rückmeldung erwarte, ob die E-Mail gesendet wurde oder nicht.
hast es schon verstanden?

natürlich warten,
aber nicht innerhalb von einem script. damit müssten alle warten.
es gibt eine function, die auslöst
und es gibt eine zweite funktion, in der es weiter geht,
wann immer das event gesendet wird.

in der zwischenzeit arbeiten alle anderen fröhlich weiter.
Zitat:
Zitat von Drunkenmunkey Beitrag anzeigen
was meinst du mit einem eigenen Event dispatchen
bitte mal in der flash-hilfe das ganze event-gedöns ansehen. das ist extrem wichtig.
ein mausklick ist ein ereignis. sowas z.b. kannst du auch selbst auslösen (natürlich ohne die maus zu bewgen ;-)
xxx_object.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); // sendet einen mausclick an xxx_object
man kann dem volk auch selbst definierte ereignisse kundtun. u.a. um zusätzliche parameter mit zu versenden.
z.b. mal hier das ZIP laden
http://www.seibsprogrammladen.de/fra...ispiele/flash9
-> AS3_eigenes_event
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-10-2011 um 15:32 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
class, klasse

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
Klassenproblem HueGel ActionScript 2 2 23-03-2008 11:43
klassenproblem Fellkneul ActionScript 3 5 06-03-2008 16:06
[AS3] kleines Klassenproblem rendner[i] ActionScript 1 2 15-12-2005 10:03
Klassenproblem pejot Softwarearchitektur und Entwurfsmuster 3 22-05-2005 19:21
Klassenproblem mit LoadMovie mojave ActionScript 1 3 07-10-2004 09:13


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele