Blog Papervision3D

Blog Français sur Papervision3D

Chargement d’image du BitmapFileMaterial.

Posté par Ocelyn le 18 septembre, 2009
Publié dans Tutoriaux

Quand on utilise des textures chargées de manières externes, il est nécessaires de pouvoir savoir à quel instant, elles ont été chargées pour les appliquer à nos objets 3D, dans le tutoriel d’hier nous avons vu une technique qui consiste à loader une image externe d’une manière conventionnel, en faire un objet BitmapData et l’ajouter à un BitmapMaterial.

Aujourd’hui, nous allons voir que les matériaux BitmapFileMaterial possèdent leur propre loader, ce qui est relativement pratique.

Nous créons donc notre BitmapFileMaterial (ligne 19) et lui passons le chemin vers notre image, puis nous plaçons deux écouteurs, pour écouter les évènements FileLoadEvent, un pour écouter la progression de l’image,pour faire un loading par exemple (ligne 21) et un évènement Complete pour écouter quand l’image est chargé.

Enfin quand l’image est chargé nous appelons la méthode buildPlane (ligne 29), créons notre plane et lui appliquons notre texture.

  1. package  {
  2. import org.papervision3d.events.FileLoadEvent;
  3. import org.papervision3d.materials.BitmapFileMaterial;
  4. import org.papervision3d.objects.primitives.Plane;
  5. import org.papervision3d.view.BasicView;
  6.  
  7. import flash.events.Event;
  8.  
  9. public class BasicScene extends BasicView {
  10.  
  11. public function BasicScene()
  12. {
  13. initMaterial();
  14. startRendering();
  15. }
  16.  
  17. private function initMaterial() : void
  18. {
  19. bfm = new BitmapFileMaterial("URL IMAGE");
  20. bfm.addEventListener(FileLoadEvent.LOAD_COMPLETE, buildPlane);
  21. bfm.addEventListener(FileLoadEvent.LOAD_PROGRESS, progressLoading);
  22. }
  23.  
  24. private function progressLoading(event : FileLoadEvent) : void
  25. {
  26. trace("loading");
  27. }
  28.  
  29. private function buildPlane(event : FileLoadEvent) : void
  30. {
  31. bfm.removeEventListener(FileLoadEvent.LOAD_COMPLETE, buildPlane);
  32. bfm.removeEventListener(FileLoadEvent.LOAD_PROGRESS, progressLoading);
  33.  
  34. plane = new Plane(bfm, 50, 50, 4, 4);
  35. scene.addChild(plane);
  36.  
  37. plane.z = ( camera.zoom * camera.focus )Math.abs(camera.z);
  38.  
  39. }
  40.  
  41. override protected function onRenderTick(event:Event=null):void
  42. {
  43. super.onRenderTick(event);
  44. }
  45.  
  46. private var plane : Plane;
  47. private var bfm : BitmapFileMaterial;
  48. }
  49. }
Share and Enjoy:
  • Facebook
  • Twitter
  • LinkedIn
  • del.icio.us
  • Technorati
  • Digg
  • Netvibes
  • Wikio FR
  • Live
  • Google Bookmarks
  • email
  • Print

Aucun commentaire dans ce post, pour l'instant.

Suivre ce post par RSS ou poser un trackback

Laisser un commentaire

Currently browsing Chargement d’image du BitmapFileMaterial.

 Pseudo(*requis)

 Email (*privée)

 Site internet (*optionnel)