Thanks Diogo , but i have lots of different objects to load im my
views , and each view got different backgrounds, and so on , if you,
do you think is there any way i can solve this problem , i have posted
some part of my sample code in here .. thanks
in this main class i do the switching btween my views
(myNinja3d:MyNinja3d and friendNinja3d:FriendNinja3d )
// Main Class ----------------------
[SWF(width="760", height="640" , backgroundColor="#95E795",
frameRate="30")]
public class Main extends Sprite
{
private var myNinja3d:MyNinja3d;
private var friendNinja3d:FriendNinja3d;
public function Main()
{
myNinja3d = new MyNinja3d();
friendNinja3d = new FriendNinja3d();
addChild(myNinja3d.view);
stage.addEventListener(KeyboardEvent.KEY_DOWN,
onKeyDown);
}
private function onKeyDown(event : KeyboardEvent) : void
{
if(event.keyCode == Keyboard.SPACE)
{
if(GlobalClass.currentScene == "MyNinja3d")
{
removeChild(myNinja3d.view);
addChild(friendNinja3d.view);
GlobalClass.currentScene =
"FriendNinja3d";
}else if(GlobalClass.currentScene ==
"FriendNinja3d")
{
removeChild(friendNinja3d.view);
addChild(myNinja3d.view);
GlobalClass.currentScene = "MyNinja3d"
}
}
}
-----------------------------------
this class extends my world 3d class and i simply add a cube on it
with adiffrent background color and onframe enter it moves the cube
// MyNinja3d class -----------------------
package myClasses
{
import away3d.materials.BitmapMaterial;
import away3d.primitives.Cube;
import flash.display.BitmapData;
import flash.events.Event;
public class MyNinja3d extends World3d
{
public var myTestCube:Cube;
public function MyNinja3d()
{
view.backgroundColor = 0X0000CC;
testAddCube();
this.addEventListener(Event.ENTER_FRAME,
enterFrame,false,0,true);
}
private function enterFrame(event:Event):void
{
if( GlobalClass.currentScene == "MyNinja3d" )
{
view.render();
myTestCube.rotationX += 2;
myTestCube.rotationY += 2;
trace("MyNinja3d") ;
}
}
public function testAddCube():void
{
var bmp : BitmapData = new BitmapData(64,64);
bmp.perlinNoise(200, 200, 2, Math.random(), true, true);
var mat : BitmapMaterial = new BitmapMaterial(bmp);
myTestCube = new Cube();
myTestCube.scale(4);
myTestCube.material = mat;
this.view.scene.addChild(myTestCube);
}
}
}
-----------------------------------
// FriendNinja3d class ------------------
package myClasses
{
import away3d.materials.BitmapMaterial;
import away3d.primitives.Cube;
import flash.display.BitmapData;
import flash.events.Event;
public class FriendNinja3d extends World3d
{
public var friendTestCube:Cube;
public function FriendNinja3d()
{
view.backgroundColor = 0XFF00CC;
friendTestAddCube();
this.addEventListener(Event.ENTER_FRAME,
enterFrame,false,0,true);
}
private function enterFrame(event:Event):void
{
if( GlobalClass.currentScene == "FriendNinja3d" )
{
view.render();
friendTestCube.rotationX -= 0.5;
friendTestCube.rotationY -= 0.5;
trace("FriendNinja3d");
}
}
public function friendTestAddCube():void
{
var bmp : BitmapData = new BitmapData(64,64);
bmp.perlinNoise(200, 200, 2, Math.random(), true, true);
var mat : BitmapMaterial = new BitmapMaterial(bmp);
friendTestCube = new Cube();
friendTestCube.scale(3);
friendTestCube.material = mat;
this.view.scene.addChild(friendTestCube);
}
}
}
----------------------------
world 3d class is simply initial 3d scene
// world 3d class ---------------------------
public class World3d extends Sprite
{
public var view:View3D;
public function World3d()
{
initWorld();
}
private function initWorld():void
{
view = new View3D();
setViewSize((Main.instance.stage.stageWidth),
(Main.instance.stage.stageHeight));
setViewPosition();
}
public function setViewSize(worldWidth:int ,
worldHeight:int):void
{
view.width = worldWidth;
view.height = worldHeight;
}
public function setViewPosition(worldX:int = 0, worldY:int =
0):void
{
view.x = worldX;
view.y = worldY;
}
}
}
On Oct 23, 10:44 pm, Diogo Moraes <[email protected]> wrote:
> wouldn't it be easier to switch only the current camera?
>
> 2011/10/23 Hamid Reza <[email protected]>
>
>
>
>
>
>
>
> > Hi every body,
> > I have created 2 simple 3d views and what im trying to do is to switch
> > between these 2 views , what i do at first i add the first view using
> > addchild() and through some events i remove the current child using
> > removechild() and then ad the other view ,, till here it works fine ,
> > i can go to the new view , but once i want to switch back ( what i do
> > remove the current view and add the view which i previously removed )
> > the view dose not change , it just stops the current view
> > interactions . if i do the switch action again the current view starts
> > interaction agin, and seems like the last view is totally replaced ,
> > dose and body can help me about it ? Thanks