All pastes #1205888 Raw Edit

Someone

public text v1 · immutable
#1205888 ·published 2008-09-19 14:59 UTC
rendered paste body
//My class that creates double Plane(Cube) in scene
package com.papervision3D
{
	import flash.display.Stage;
	import flash.geom.Rectangle;
	import com.display.PlaneMaterial.MainMaterial;
	import com.display.PlaneMaterial.MainMaterialEvent;
	import com.display.PlaneMaterial.CoverMaterial.*;
	import com.MailTypeConstant;
	//Papervision3D import-----------------------------//
	import org.papervision3d.objects.*;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.materials.MovieMaterial;
	import org.papervision3d.events.*;
	import org.papervision3d.materials.utils.*;
	
	public class MyDoublePlane extends DisplayObject3D
	{
		private var frontMaterial:CoverMaterial;
		public var backMaterial:MainMaterial;
		private var materialFront:MovieMaterial;
		private var materialBack:MovieMaterial;
		private var doublePlane:Cube;
		private var materialList:MaterialsList; 
		public var planeWidth:int = 225;
		public var planeHeight:int = 250;
		public var positionObj:Object = {};
		private var quality:Number = 4;
		private var config:Object;
		
		public function MyDoublePlane(conf:Object = null)
		{
			config = conf;
			createCube(); //create my Cube
		}
		
		public function createCube():void
		{		
		   //Create movie for front material
	           frontMaterial = new CoverMaterial();
                   
		    frontMaterial.addEventListener(CoverMaterialEvent.LOAD_COMPLETE, onMaterialLoadComplete);
		    frontMaterial.addEventListener(CoverMaterialEvent.UNLOAD, onMaterialUnload);
				
		   //Create movie for back material
		   backMaterial = new MainMaterial();
                   backMaterial.addEventListener(MainMaterialEvent.LOAD_COMPLETE, onMaterialLoadComplete);
		   backMaterial.addEventListener(MainMaterialEvent.ERROR, onMaterialError);
		   backMaterial.addEventListener(MainMaterialEvent.UNLOAD, onMaterialUnload);

						
		    materialList = new MaterialsList();
			
		    materialFront = new MovieMaterial(frontMaterial,false, true, true);
		    materialBack = new MovieMaterial(backMaterial, false, true, true);

		    materialFront.interactive = true;
		    materialBack.interactive = true;

		    materialFront.smooth = true;
		    materialBack.smooth = true;
				
		    materialBack.rect = new Rectangle(0, 0 ,planeWidth, planeHeight);
		    materialList.addMaterial(materialBack, "back");
		    materialList.addMaterial(materialFront, "front");
		    var insideFaces:int = Cube.FRONT + Cube.BACK;

		    doublePlane = new Cube(materialList, planeWidth, 0, planeHeight, quality, quality, quality, insideFaces);
		    doublePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onMouseOver, false, 0, false);
		    doublePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onMouseOut, false, 0, false);
		    addChild(doublePlane);
		}
		
			
		public function unloadBackImage():void 
		{
			if( backMaterial.src != "")
				backMaterial.unload();
					
			backMaterial = new MainMaterial({width:planeWidth, height:planeHeight, background:config.mail.background});
			backMaterial.removeEventListener(MainMaterialEvent.LOAD_COMPLETE, onMaterialLoadComplete);
			backMaterial.removeEventListener(MainMaterialEvent.UNLOAD, onMaterialUnload);
				
		}
			
		public function deletePlane():void
		{
                         unloadBackImage();
                         unloadFrontImage();
			removeChild(doublePlane);
			doublePlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onMouseOver, false);
			doublePlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onMouseOut, false);
			backMaterial = null;
			frontMaterial = null;
			
			materialList.removeMaterial(materialBack);
			materialList.addMaterial(materialFront);
			
			materialBack.destroy();
			materialBack.interactive = false;
			materialBack.unregisterObject(doublePlane);
			materialBack = null;
			
			materialFront.unregisterObject(doublePlane);
			materialFront.interactive = false;
			materialFront.destroy();
			materialFront = null;
			
			materialList = null;
				
			doublePlane =null;
		}
		
		public function unloadFrontImage():void 
		{
			if(frontMaterial.src != "")
				frontMaterial.unload();
				
			
			frontMaterial.removeEventListener(CoverMaterialEvent.LOAD_COMPLETE, onMaterialLoadComplete);
			frontMaterial.removeEventListener(CoverMaterialEvent.UNLOAD, onMaterialUnload);	
		}
		
		public function setMaterialAnimated(anim:Boolean):void
		{
		    if (materialList)
		    {
			materialFront.animated = anim;
			materialBack.animated = anim;
		     }
		}
	}
 }
//Function for delete instance of MyDoublePlane - doublePlanes is Array with all instance of MyDoublePlane

private function deletePlane(index:int):void
{		
    scene.removeChild(doublePlanes[index]);
	if(doublePlanes[index].planeType != MailTypeConstant.EMPTY)
	{
	    doublePlanes[index].setMaterialAnimated(false);
	     doublePlanes[index].deletePlane();
	}
	delete doublePlanes[index];
}