Bonjour,
Voila j'ai cree un evenement personnalise :
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 package { import flash.events.Event; public class CustomEvent extends Event { public static const CUSTOM:String = "custom"; public var videoId:String=""; public function CustomEvent(type:String, videoId:String="", bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); this.videoId = videoId; } public override function clone():Event { return new CustomEvent(type, videoId, bubbles, cancelable); } public override function toString():String { return formatToString("CustomEvent", "type", "videoId", "bubbles", "cancelable", "eventPhase"); } } }
J'ajoute ce lsitener dans le package de mon itemrenderer personnalise:
Cet evenement je veux le recuperer dans mon fichier mxml principal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private function handleImageClick(e:MouseEvent) :void { var evenementVideo: CustomEvent= new CustomEvent(CustomEvent.CUSTOM,e.currentTarget.id); dispatchEvent(evenementVideo); dispatchEvent(new MouseEvent("ClickRenderer")); //dispatchEvent(new DynamicEvent("validationEvent")); }
Donc voila dans mon mxml principal, il ne se passe rien. Alors que normalement je devrais avoir mon message Alert qui devrait s'afficher ...
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 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:tubeloc="com.enefekt.tubeloc.*" xmlns:toolbox="http://www.flextoolbox.com/2006/mxml" layout="absolute" creationComplete="init()" autoLayout="true" xmlns:ns1="com.flextoolbox.controls.*" xmlns:controls="com.monComposantAffiche" xmlns:com="com.*"> <mx:Script> <![CDATA[ import mx.events.DynamicEvent; import mx.controls.Image; import com.flextoolbox.events.*; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; import mx.controls.Alert; import mx.effects.DefaultListEffect; import mx.collections.ArrayCollection; import com.enefekt.tubeloc.event.*;//package nécesaire au chromeless player import com.enefekt.tubeloc.MovieSprite;//package nécesaire au chromeless player import com.flextoolbox.controls.treeMapClasses.*; import flash.geom.Rectangle; //protected var _requestId:Number; [Bindable] public var photo:XMLDocument; private var _colorRange:Number = 0; private namespace atom = "http://www.w3.org/2005/Atom"; private var media:Namespace = new Namespace("media","http://search.yahoo.com/mrss/"); private var gd:Namespace = new Namespace("gd","http://schemas.google.com/g/2005"); use namespace atom; private var service:HTTPService = new HTTPService();// création du service private var xmlfile:XML; private var ArrayVideo:ArrayCollection = new ArrayCollection() ; public function init () :void {//appel au web service service.contentType = HTTPService.RESULT_FORMAT_XML; service.method = "GET"; // service.request = request; service.resultFormat = "text"; service.url = "http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed"; service.addEventListener(ResultEvent.RESULT, ResultService); service.addEventListener(FaultEvent.FAULT, FaultService); service.resultFormat="e4x" service.send(); //tree.addEventListener(TreeMapEvent.LEAF_CLICK, LeafClick); this.addEventListener("ClickRenderer",onClickRenderer); this.addEventListener(CustomEvent.CUSTOM,LoadVideo); } public function LoadVideo(event:CustomEvent):void { Alert.show("la"); } </mx:Script> ...... <com:monComposantAfffiche id="Fauxpopup" autoLayout="true" width="{this.width}" height="{this.height}" backgroundAlpha="0.5" visible="false" /> </application>
Partager