Bonjour à tous,
voila dans le cadre d'un projet Air/Magento j'ai du créer plusieurs remoteObjetcs qui fonctionnent parfaitement.
Mais le dernier me pose un problème: je doit faire un système de notification et donc ce n'est pas l'appli Air qui déclenche la fonction mais l'interface d'admin Magento.
L'appli Air doit seulement écouter si la fonction php revoit quelque chose.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.banr.model
{
        import com.banr.model.vo.MessageVO;
        import com.banr.model.vo.ThreadVO;
        import com.banr.model.vo.ThreadsVO;
        import com.banr.utils.services.Connector;
 
        import mx.managers.CursorManager;
        import mx.rpc.Fault;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
 
        import org.puremvc.as3.interfaces.IProxy;
        import org.puremvc.as3.patterns.proxy.Proxy;
        public class ThreadProxy extends Proxy implements IProxy
        {
                public static const NAME:String = "threadProxy";
                public static const THREAD_CAMPAIGN_LOADED:String = "THREAD_CAMPAIGN_LOADED";
                private var _connector:Connector;
                public function ThreadProxy()
                {
                        super(NAME, new Object());
                        this._connector = Connector.getInstance();
                        this.setServices();
                }
 
                /**
                 * Paramètre les écouteurs sur les fonctions PHP concernant les threads
                 */
                private function setServices():void{
                        trace('listening to threads services');
                        this._connector.dataService.notifyCustomer.addEventListener(ResultEvent.RESULT, handleNotification);
                        this._connector.dataService.notifyCustomer.addEventListener(FaultEvent.FAULT, handleNotificationFailure);
 
                }
 
                private function handleNotification(e:ResultEvent):void{
                        trace("ici");
                        trace(e.result.notifyUserId);
                        trace(e.result.notifyTicketId);
                        trace(e.result.notifyCreatedBy);
                        trace(e.result.notifyNewTicket);
                }
 
 
 
                /**
                 * Gestion des erreurs renvoyées par les fonctions PHP
                 */
                ...     
                private function handleNotificationFailure(e:FaultEvent):void{
                        trace(e.fault.message);
                        trace(e.fault.faultDetail);
                }
 
 
 
 
        }
}
le "trace('listening to threads services');" sort dès que je lance l'appli

si je fais :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
package com.banr.model
{
        import com.banr.model.vo.MessageVO;
        import com.banr.model.vo.ThreadVO;
        import com.banr.model.vo.ThreadsVO;
        import com.banr.utils.services.Connector;
 
        import mx.managers.CursorManager;
        import mx.rpc.Fault;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
 
        import org.puremvc.as3.interfaces.IProxy;
        import org.puremvc.as3.patterns.proxy.Proxy;
        public class ThreadProxy extends Proxy implements IProxy
        {
                public static const NAME:String = "threadProxy";
                public static const THREAD_CAMPAIGN_LOADED:String = "THREAD_CAMPAIGN_LOADED";
                private var _connector:Connector;
                public function ThreadProxy()
                {
                        super(NAME, new Object());
                        this._connector = Connector.getInstance();
                        this.setServices();
                }
 
                /**
                 * Paramètre les écouteurs sur les fonctions PHP concernant les threads
                 */
                private function setServices():void{
                        trace('listening to threads services');
                        this._connector.dataService.notifyCustomer.addEventListener(ResultEvent.RESULT, handleNotification);
                        this._connector.dataService.notifyCustomer.addEventListener(FaultEvent.FAULT, handleNotificationFailure);
 
                        this._connector.dataService.notifyCustomer(1,1,'toto', true);
                }
 
                private function handleNotification(e:ResultEvent):void{
                        trace("ici");
                        trace(e.result.notifyUserId);
                        trace(e.result.notifyTicketId);
                        trace(e.result.notifyCreatedBy);
                        trace(e.result.notifyNewTicket);
                }
 
 
 
                /**
                 * Gestion des erreurs renvoyées par les fonctions PHP
                 */
                ...     
                private function handleNotificationFailure(e:FaultEvent):void{
                        trace(e.fault.message);
                        trace(e.fault.faultDetail);
                }
 
 
 
 
        }
}
la fonction handleNotification est appellée et trace les résultats...


Merci d'avance pour votre aide!