Bonjour à tous, Je code actuellement un site en flash AS3. Avec l'aide de plusieurs sources j'ai fini par créer des planes qui charges des images a partir d'un xml, puis les planes sont créer dans un conteneur avec un chemin cylindrique pour le mouvement. J'essaye d'ajouter un plane inversé avec un degradé pour créer l'effet du reflet au sol. Mais je n'y arrive pas, a chaque teste l' AS3 ne reagit plus. Voici mon code de chargement des images et création des objets planes, qui fonctionne très bien. Je n'ai pas ajouter le code du reflet car j'espère que quelqu'un pourra m'indiqué une nouvelle issue. import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import fl.transitions.Tween; import fl.transitions.easing.*; import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); container.x = 488; container.y = 275; addChild(container); var scene:Scene3D = new MovieScene3D(container); var cam:Camera3D = new Camera3D(); cam.zoom = 8; tn_title.text = ""; tn_desc.text = ""; tn_url.text = ""; var p_dict:Dictionary=new Dictionary(); var pc:Plane = new Plane(); pc.visible = false; cam.target = pc; var numOfRotations:Number = 3; var yPos:Number = 0; var angle:Number = 0; var filename_list = new Array(); var url_list = new Array(); var url_target_list:Array = new Array(); var title_list = new Array(); var description_list = new Array(); var folder:String = "thumbnails/"; var i:Number; var j:Number = 0; var k:Number = 0; var l:Number = 0; var m:Number = 0; var total:Number; var flashmo_xml:XML = new XML(); var loader:URLLoader = new URLLoader(); loader.load(new URLRequest("thumbnail_list_3.xml")); loader.addEventListener(Event.COMPLETE, create_thumbnail); function create_thumbnail(e:Event):void { flashmo_xml = XML(e.target.data); total = flashmo_xml.thumbnail.length(); var anglePer:Number = ((Math.PI*2) * numOfRotations) / total; for( i = 0; i < total; i++ ) { url_list.push( flashmo_xml.thumbnail[i].@url.toString() ); url_target_list.push( flashmo_xml.thumbnail[i].@target.toString() ); title_list.push( flashmo_xml.thumbnail[i].@title.toString() ); description_list.push( flashmo_xml.thumbnail[i].@description.toString() ); var bfm:BitmapFileMaterial = new BitmapFileMaterial( folder + flashmo_xml.thumbnail[i].@filename.toString()); bfm.oneSide = false; bfm.smooth = true; var p:Plane = new Plane(bfm, 140, 105, 2, 2); scene.addChild(p); var p_container:Sprite = p.container; p_container.name = "flashmo_" + i; p_dict[p_container] = p; p_container.buttonMode = true; p_container.addEventListener( MouseEvent.ROLL_OVER, p_rollover ); p_container.addEventListener( MouseEvent.ROLL_OUT, p_rollout ); p_container.addEventListener( MouseEvent.CLICK, p_click ); p.rotationY = (-i*anglePer) * (180/Math.PI) + 90; p.x = Math.cos(i * anglePer) * 480; p.z = Math.sin(i * anglePer) * 480; p.y = yPos; if( (i+1) % 20 == 0 ) { yPos += 115; } } } function p_rollover(me:MouseEvent) { var sp:Sprite = me.target as Sprite; var tw:Tween = new Tween(sp, 'alpha', Strong.easeOut, 1, 0.5, 0.6, true); var s_no:Number = parseInt(sp.name.slice(8,10)); tn_title.text = title_list[s_no]; tn_desc.text = description_list[s_no]; tn_url.text = url_list[s_no]; } function p_rollout(me:MouseEvent) { var sp:Sprite = me.target as Sprite; var tw:Tween = new Tween(sp, 'alpha', Strong.easeOut, 0.5, 1, 0.6, true); tn_title.text = ""; tn_desc.text = ""; tn_url.text = ""; } function p_click(me:MouseEvent) { var sp:Sprite = me.target as Sprite; var s_no:Number = parseInt(sp.name.slice(8,10)); navigateToURL(new URLRequest(url_list[s_no]), url_target_list[s_no]); } addEventListener(Event.ENTER_FRAME, render); function render(e:Event):void { var dist2:Number = ((stage.mouseX) - 488) * 0.0001; angle += dist2; cam.x = - Math.cos(angle) * 350; cam.z = Math.sin(angle) * 350; var new_zoom = 12.5 - stage.mouseY * 0.008; cam.zoom += ( new_zoom - cam.zoom ) * 0.06; scene.renderCamera(cam); }