Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-10-2008, 14:49   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
dispatch Event wie mach ich das am schalusten?

Hallo,

ich hab hier eine Gatway Klasse:

PHP-Code:
package  {

    
import flash.net.*

    public class 
GatewayConnect  {
    

    
    private var 
gateway:NetConnection = new NetConnection();
    private var 
aTopNav:Array = []
    private var 
resTopNav:Responder;
    
    protected static const 
GATEWAY_CONNECT
    
    
    
public function GatewayConnect()
    {
        
        
gateway.connect("http://www.meinseite.com/dev/amfphp/gateway.php");
        
resTopNav = new Responder (onResultTopNavonFaultTopNav);
        
collectTopNavData();
        
    }
    
    private function 
collectTopNavData(){
        
        
gateway.call("KJMain.getMenuEntries"resTopNav"/dev/img");
    }
    private function 
onResultTopNav(responds:Object):void{
        
trace("WORKS!")    
        for(var 
i:Number 0<responds.lengthi++){
            
aTopNav[i] = [];
            
aTopNav[i].push(responds[i].label);            
            
aTopNav[i].push(responds[i].dirname);                    
        }

    }

    private function 
onFaultTopNav(responds:Object):void{
        
trace("FAULT!")
        for(var 
i in responds){
            
trace(responds[i]);
        }

    }

    }


onResult soll ein Halt die TopNavi Klasse getriggert werden, um sicher zu gehen das alle Daten da sind. Aber ich wie mach ich das am schlausten?

Danke
Guido
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish ist offline   Mit Zitat antworten
Alt 29-10-2008, 15:44   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Setz in die Responderklasse einen dispatchEvent und hinter die Instanziierung in der GatewayConnect-Klasse einen addEventListener, der auf den Event reagiert.
  Mit Zitat antworten
Alt 29-10-2008, 16:12   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
hmm sorry, also das ist ja leider mein Problem ich fang gerade mit AS3 und OOP an und krieg das einfach nicht hin…
Ich persönlich find ja das die Hilfe für AS3 fortgeschrittenen eine gute Hilfestellung bietet aber wenn man neu ist doch
nicht so ganz weiter hilft…
Kannst Du das einfach mal in 2 Zeilen exemplarisch darstellen…

okay hab´s danke…
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________

Geändert von stylefetish (29-10-2008 um 16:40 Uhr)
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 16:33   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Ne irgendwie funktioniert das doch alles nicht…

Meine Gatway Klasse sieht nun wir folgt aus:

PHP-Code:
package com.lado.connect {


    
import flash.net.*
    
import flash.events.Event;

    public class 
GatewayConnectNav  {
    
        private var 
gateway:NetConnection = new NetConnection();
        private var 
_aTopNav:Array = []
        private var 
resTopNav:Responder;
        private var 
resImg:Responder;
    
        public static const 
NAVI_LOADED    :String        "com.lado.connect.GatewayConnectNav.NAVI_LOADED";
        private static const 
IMG_PATH        :String        "htdocs/dev/img"
    
    
        
public function GatewayConnectNav()
        {
        
            
gateway.connect("http://www.meinseite.com/dev/amfphp/gateway.php");
            
resTopNav = new Responder (onResultTopNavonFaultTopNav);

        }
    
        private function 
collectTopNavData(){
                
            
gateway.call("lado.KJMain.getMenuEntries"resTopNavIMG_PATH);
        
        }
    
        private function 
onResultTopNav(responds:Object):void{

            for(var 
i:Number 0<responds.lengthi++){
                
_aTopNav[i] = [];
                
_aTopNav[i].push(responds[i].label);            
                
_aTopNav[i].push(responds[i].dirname);                    
            }
            
dispatchEvent(new Event(GatewayConnectNav.NAVI_LOADED));

        }

        private function 
onFaultTopNav(responds:Object):void{
            for(var 
i in responds){
                
trace(responds[i]);
            }

        }

    
    
    }



in der Navi Klasse hab ich dann folgendes:

PHP-Code:
package com.lado.nav {
    
    
import flash.display.Sprite;
    
import flash.events.Event;
    
import flash.events.MouseEvent;
    
import com.lado.nav.NavItem;
    
import com.lado.connect.GatewayConnectNav;
    
    public class 
Navigator extends Sprite {
        
        private var 
_navArray    :Array;
        private var 
_topArray    :Array;
        
        private var 
clip        :NavItem;
        private var 
_damping    :Number        80;
        private var 
_yTarget    :Number        200;
        
        private var 
gw:GatewayConnectNav;
        
        public function 
Navigator(){            
            
            
super();
            
gw = new GatewayConnectNav();
            
addEventListener(GatewayConnectNav.NAVI_LOADEDcreateNav);
        
        }
        
        private function 
createNav():void {
        
            
_topArray gw.TopNavi;
            
            
removeEventListener(Event.NAVI_LOADEDcreateNav);                
            
            
trace(_topArray);
            
            for (var 
i:int 0i<_topArray.lengthi++) {
                    
navArray[i].enable();

            }
        
        }    
    
        public function 
get navArray():Array { return _navArray; }

    }
    

ich krieg aber immer die Fehlermeldung:

1180: Call to a possibly undefined method dispatchEvent.
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________

Geändert von stylefetish (30-10-2008 um 16:42 Uhr)
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 16:42   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
GatewayConnectNav muss von EventDispatcher erben.
Omega Psi ist offline   Mit Zitat antworten
Alt 30-10-2008, 16:48   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Ähm… will heißen – Sorry fang gerade erst mit AS3 und OOP an…
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 16:51   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
ActionScript:
  1. package com.lado.connect {
  2.  
  3.     import flash.net.*
  4.     import flash.events.Event;
  5.     import flash.events.EventDispatcher;
  6.  
  7.     public class GatewayConnectNav extends EventDispatcher {
  8.  
  9.     /*  */
  10.  
  11.     }
  12. }
Omega Psi ist offline   Mit Zitat antworten
Alt 30-10-2008, 16:52   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
super danke!!
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 17:13   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
und wenn Du mir jetzt noch sagen kannst warum createNav nie ausgeführt wird :/

PHP-Code:
    public function Navigator(){            
            
            
super();
            
gw = new GatewayConnectNav();
            
addEventListener(GatewayConnectNav.NAVI_LOADEDcreateNav);

        }
        
        public function 
createNav():void {
        
            
_topArray gw.TopNavi;
            
            
            
trace("Navigator::createNav()" _topArray);            
            for (var 
i:int 0i<_topArray.lengthi++) {
                    
navArray[i].enable();

            }
            
removeEventListener(GatewayConnectNav.NAVI_LOADEDcreateNav);                

        } 
machst Du mich zu einen SEHR glücklichen Menschen
Danke
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 17:18   #10 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
PHP-Code:
gw = new GatewayConnectNav();
gw.addEventListener(GatewayConnectNav.NAVI_LOADEDcreateNav); 
  Mit Zitat antworten
Alt 30-10-2008, 17:20   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Vielen vielen Dank!
Was würde ich nur ohne Euch alle hier machen!
Guido
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish ist offline   Mit Zitat antworten
Alt 30-10-2008, 17:22   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Mal die Doku lesen?

Ne, also mal ernsthaft: das hier sind keine brandheissen Insiderinfos... das ganze kannst du auch in der Dokumentation und den Büchern zu ActionScript 3 nacharbeiten...
Omega Psi ist offline   Mit Zitat antworten
Alt 30-10-2008, 17:47   #13 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: united states of mars
Beiträge: 334
Ja die hab ich hier ja auch liegen so ziemlich alle zum Thema AS3 und OOP die ich findne konnte. Die Hilfe fand ich ja bei AS2 um einiges Verständlicher…

Ich hab lange in den Büchern gelesen und bis das z.B. gecheckt habe das
extends MovieClip eigentlich(!) nicht anderes ist als createEmptyMovieClip wenn man prodzedual Programmiert.

Mein Problem ist momentan einfach noch die Unsicherheit mit der Materie. D.h. es hapert an noch an allen Ecken und Enden, und da Hilft es einfach wenn einem da jemand zur Seite steht.

Klar werde ich hier meine Bücher weiter welzen und denke auch noch eins zwei Projekte dann ist die Routine wieder da… Dann werd ich auch keine so doofen Fragen mehr stellen – versprochen ;-)
__________________
zum glück läuft auf meinem mac nicht alles so langsam wie der flashplayer.
______________
stylefetish 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 16:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele