IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Events, listener etc.


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 21
    Par défaut Events, listener etc.
    Salut.

    J'ai un souci a l'utilisation des evenements sous Flex 3.

    Voila ma structure.

    un canvas Toto
    une classe Utils

    J'ai une fonction dans le mxmxl de Toto, on va dire Manage();

    Manage fait appel a une methode de la classe Utils.
    Je dois attendre la fin de la methode de la classe Utils pour continuer mon traitement dans Manage.

    En gros


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Manage()
    {
    addEventListener(Event.COMPLETE, callback);
      utils.bidule();
    } 
     
     
    callback()
    {
    Alert.show("fini");
    removeEventListener(Event.COMPLETE,callback);
     
     
    //RESTE DU TRAITEMENT
     
    }
     
     
    dans la class Utils ...
     
    function bidule()
    {
    dispatchEvent( new Event(Event.COMPLETE));
    }
    Mon souci est que je ne recois JMs le message Event.COMPLETE, et je ne comprends pas pourquoi.

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    Il est possible que l'event complete ne se produise pas dans certain cas
    ioError:IOErrorEvent — The load operation could not be completed.


    securityError:SecurityErrorEvent — A load operation attempted to retrieve data from a server outside the caller's security sandbox. This may be worked around using a policy file on the server.
    http://livedocs.adobe.com/flash/9.0/...#event:ioError

    testez avec le code d'exemple a cette adresse
    http://livedocs.adobe.com/flash/9.0/...xamplesSummary
    sa vous donnera peut être plus d'informations

  3. #3
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 21
    Par défaut
    J'ai teste en rajoutant un listener sur une erreur IO comme tu me le demandais, je n'ai rien


    Je poste mes bouts de code pour voir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private	function	Go():void
    			{
     
    				addEventListener(Event.COMPLETE,ConnectedtoDB);
    				addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
     
     
    				DBUtils.ConnectToDB();	
     
    			}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private function errorHandler(e:IOErrorEvent):void {
    				trace("Pb");
    			}
     
    			private	function	ConnectedtoDB():void
    			{
    				Alert.show("fini");
    				//removeEventListener(Event.COMPLETE,ConnectedtoDB);
    			}


    Et le bout de ma classe DBUtils

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    public  class DBUtils extends EventDispatcher
    	{
     
    ....
     
     
    		public	static	function	ConnectToDB():void
    		{
    			Application.application.DBUtils_service.getOperation('ConnectDB').send();
    		}
     
    		public		function	ConnectToDB_Result(evt:ResultEvent):void
    		{			
    			dispatchEvent( new Event(Event.COMPLETE));
    			Alert.show(evt.result.toString());
    		}
     
    }
    Le cheminement est

    Go -> je rajoute des listeneurs -> ConnectDB -> ConnectToDB_Result -> ConnectedtoDB

  4. #4
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    la classe contenant la methode go() dérrive bien de la classe URLLoader ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    URLLoader 
    
    package 
    {
    	 
    	/**
    	 * ...
    	 * @author ...
    	 */
    	public class MyLoader extends URLLoader 
    	{
    		
    		
    		private	function Go():void
    		{
    				
    			addEventListener(Event.COMPLETE,ConnectedtoDB);
    			addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
    			DBUtils.ConnectToDB();	
    		}
    	}
    	
    }

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    Citation Envoyé par guynemer Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.application.DBUtils_service.getOperation('ConnectDB').send();
    hum getOperation('ConnectDB') return t'il un object, si oui de quel type est cette object?
    je pense que la méthode getOperation doit créer un object ou un dérivé d' urlloader il faut arriver a mettre la main dessus pour lui rattacher les events.
    Sinon voir dans send() si la création de l'object ne se fait pas la.
    Dite moi si ça vous a aidé.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 21
    Par défaut
    Hum je ne sais pas vrmt.

    voila les prototypages

    mx.rpc.remoting.mxml.RemoteObject.getOperation(name:String):AbstractOperation


    mx.rpc.AbstractOperation.send(...parameters):AsyncToken

    Je ne sais pas si ce sont des composants integres a Flex ou si ce sont des composants du framework amfphp. :/

  7. #7
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    a on se rapproche !
    AbstractOperation fait partis de flex
    http://livedocs.adobe.com/flex/3/lan...Operation.html

    AsyncToken
    http://livedocs.adobe.com/flex/3/lan...syncToken.html

    je pense qu'il faut regarder du coté de addrespondeur

    http://livedocs.adobe.com/flex/3/lan...#addResponder()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    addResponder	()	method
    public function addResponder(responder:IResponder):void
     
    Adds a responder to an Array of responders. The object assigned to the responder parameter must implement mx.rpc.IResponder.
     
    Parameters
    	responder:IResponder — A handler which will be called when the asynchronous request completes.
     
    See also
    mx.rpc.IResponder

    l'article suivant devrait vous aider : http://www.mti.epita.fr/blogs/2008/0...avec-caingorm/
    Dite moi ci c'est le cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. event listener useWeakReference
    Par bruno.rotrou dans le forum Flex
    Réponses: 2
    Dernier message: 12/10/2009, 14h54
  2. Ajouter dynamiquement un event listener
    Par Jexou dans le forum Flex
    Réponses: 13
    Dernier message: 26/08/2009, 14h41
  3. Checked box + Event listener click
    Par Tiolebucheron dans le forum Ext JS / Sencha
    Réponses: 4
    Dernier message: 17/07/2009, 16h15
  4. Réponses: 59
    Dernier message: 09/11/2007, 17h02
  5. Mettre une methode dans un event listener
    Par FidoDido® dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/07/2006, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo