Salut,
j'essai de mettre en place un petit système pour gérer des images.
pour commencer j'ai découvert cette classe :
http://weblogs.macromedia.com/auhlma...tion_effe.html
qui permet pas mal de chose sous Flex.
Mais mon but est de faire ça sous Air!
Je m'explique...
Je souhaites utiliser la classe avec le ViewStack3D.
Je vais reprendre l'exemple fourni avec le Package.
Appli Principale (Flex) :
Composant ViewStack3D :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:distortion="view.distortion.*"> <distortion:ViewStack3D /> </mx:Application>
Dans ce Code on vois bien la réferance à une Classe ViewStack3D :
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 <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:sides="view.sides.*" xmlns:controls="com.adobe.ac.controls.*" horizontalAlign="center" verticalAlign="middle" verticalGap="20"> <mx:HSlider id="widthSlider" minimum="0" maximum="100" value="40" liveDragging="true" change="viewStack.tilt( widthSlider.value );"/> <controls:ViewStack3D id="viewStack" creationPolicy="all"> <sides:ProductList id="productList" /> <sides:Registration id="registration" /> <sides:Calendar id="calendar" /> </controls:ViewStack3D> </mx:VBox>
Quand ont lance cette Application Flex, on peu gérer l'inclinaison des Différents éléments.
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 package com.adobe.ac.controls { import com.adobe.ac.mxeffects.Distortion; import com.adobe.ac.mxeffects.DistortionConstants; import flash.display.DisplayObject; import mx.containers.Canvas; import mx.core.UIComponent; import mx.events.FlexEvent; public class ViewStack3D extends Canvas { private var distortions : Array = new Array(); public function ViewStack3D() { addEventListener( FlexEvent.CREATION_COMPLETE, initDistortions ); } private function initDistortions( event : FlexEvent ) : void { for( var i : int; i < numChildren; i++ ) { var child : UIComponent = UIComponent( getChildAt( i ) ); initialiseBounds( child ); var distort : Distortion = new Distortion( child ); distort.smooth = true; distort.openDoor( 40, DistortionConstants.LEFT ); distortions.push( distort ); } } override protected function createChildren() : void { super.createChildren(); for( var i : int; i < numChildren; i++ ) { var child : UIComponent = UIComponent( getChildAt( i ) ); child.x += i * 25; child.y += i * 20; } } public function tilt( percentage : Number ) : void { var len : Number = distortions.length; for( var i : int; i < len; i++ ) { var distort : Distortion = distortions[ i ]; distort.openDoor( percentage, DistortionConstants.LEFT ); } } private function initialiseBounds( texture : UIComponent ) : void { var firstChild : DisplayObject = DisplayObject( getChildAt( 0 ) ); texture.setActualSize( firstChild.width, firstChild.height ); texture.validateNow(); } } }
Il y a une distance entre chaque éléments pour bien les discerner.
Après avoir reproduit l'application sous flex AIR.
Je lance l'appli et je remarque que ce petit écart disparait...
Je ne trouve pas l'erreur...ou le paramètre à changer...
Je viens donc quérir votre aide
Merci!
Partager