Bonjour,

Situation:
J'ai créé une application utilisant le composant FlexPaper (ici). Je récupère deux évènements : le clic sur le PDF, et le changement de page. Et ça marche très bien.

Je rencontre un problème lorsque je veux intégrer cette visionneuse à une autre application. Au lieu de placer le composant FLexPaper dans <s:Application>, je le place donc dans une <s:TitleWindow>.
Je parviens à afficher la visionneuse FlexPaper et le PDf, la fonction init() est bien appelée, donc les listeners sont biens ajoutés, mais par contre, les deux évènements ne sont plus récupérés. J'ai beau changer de page ou cliquer sur le PDF, rien ne se passe, alors que les imports et fonctions sont exactement les même que dans l'application du dessus.

Ma question:
Est-ce que selon vous <s:TitleWindow> peut bloquer les évènements émis par le composant FlexPaper ? Si oui que suggérez-vous ? Si non, d'où peut venir ce comportement ?

Merci d'avance et bonne journée

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
63
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   xmlns:fp="com.devaldi.controls.flexpaper.*"
			   xmlns:net="flash.net.*"
			   creationComplete="init();"
			   close="PopUpManager.removePopUp(this);" 
			   width="1400" minWidth="1000" minHeight="800">
	<fx:Declarations>
		<!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
		<net:URLLoader id="urlLdr" complete="urlLdr_complete(event);" />
	</fx:Declarations>
 
	<fx:Script>
		<![CDATA[
			import com.devaldi.events.CurrentPageChangedEvent;
 
			import flash.display.Sprite;
			import flash.events.Event;
			import flash.net.URLLoader;
			import flash.net.URLRequest;
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			import mx.events.FlexEvent;
			import spark.components.TitleWindow;
			import spark.events.IndexChangeEvent;
 
			// pour xml object
			private var _xmlData:XML
 
			private function loadXML(targetURL:String):void {
				urlLdr.load(new URLRequest(targetURL));
			}
 
			private function urlLdr_complete(evt:Event):void {
				_xmlData = new XML(URLLoader(evt.currentTarget).data);
			}
 
			private function init():void
			{			
				// ----Ajout des listeners ici-----
				FP1.addEventListener(CurrentPageChangedEvent.PAGE_CHANGED, pageChangedHandler);	
				FP1.addEventListener(MouseEvent.CLICK, clickOnPDFHandler);
			}
 
			private function pageChangedHandler(event:CurrentPageChangedEvent):void{	
				Alert.show("page changed");
 
				// -- rien ne se passe, ce handler n'est jamais appelé --
			}
 
			private function clickOnPDFHandler(e:MouseEvent):void{
				Alert.show("clic sur le pdf effectué");
 
				//-- idem, rien ne se passe --
			}
		]]>
	</fx:Script>
 
	<fp:FlexPaperViewer id="FP1" width="800" height="600" Scale="0.6" SwfFile="Paper.swf" 
						FullScreenAsMaxWindow="false" ProgressiveLoading="false"  />
</s:TitleWindow>