planes have back = material

back.material = xxxxx

With cube just specify the bitmap that is y-

to save making 2 x textures / jpgs etc//// do some bitmap work (standard
as3) to do this for u.

If you need example of this.. let me know and i will create article for
you...


D



On 20 November 2010 21:16, NickBee <[email protected]> wrote:

> Is there an easy way to do this?
>
> Check out this quick prototype:
>
> http://www.nickbee.com/away3d/
>
> I would like the material on the back of the cube to be flipped
> vertically so that it views properly.
>
> Below is the code I'm using.  I have an external class to load and
> slice up my image.  I'm using the resulting array for my front and
> back materials.  I figure I either have to flip the bitmap data in the
> array or how the material is viewed on on the cube.  Some direction
> either way would be great!!!!
>
>
>
>
> package
> {
>        import away3d.cameras.*;
>        import away3d.containers.*;
>        import away3d.materials.*;
>        import away3d.primitives.*;
>        import away3d.primitives.data.*;
>        import away3d.core.utils.*;
>        import away3d.core.clip.*;
>
>        import flash.display.*;
>        import flash.events.*;
>
>        import com.SliceBitmap;
>
>        public class away3D16 extends Sprite
>        {
>                //engine variables
>                private var scene:Scene3D;
>                private var camera:Camera3D;
>                private var view:View3D;
>
>                //cube vars
>                private var _cubePosX:Array = new Array(-160, -160, -160, 0,
> 0, 0,
> 160, 160, 160);
>                private var _cubePosY:Array = new Array(160, 0, -160, 160,
> 0, -160,
> 160, 0, -160);
>                private var _cubeFrontMat:Array = new Array();
>                private var _cubeBackMat:Array = new Array();
>                private var _cubeMatData:Array = new Array();
>                private var _cubes:Array = new Array();
>
>                //general vars
>                var _sliceBitmap:SliceBitmap;
>                var numCubes:uint = 9;
>
>                /**
>                 * Constructor
>                 */
>                public function away3D16()
>                {
>                        init();
>                }
>
>
>                private function init():void
>                {
>                        initEngine();
>                        sliceImage();
>                }
>
>                private function initEngine():void
>                {
>                        scene = new Scene3D();
>
>                        //camera = new Camera3D({z:-1000});
>                        camera = new Camera3D();
>                        camera.z = -910;
>
>                        //view = new View3D({scene:scene, camera:camera});
>                        view = new View3D();
>                        view.x = 240;
>                        view.y = 240;
>                        view.scene = scene;
>                        view.camera = camera;
>
>                        //add view to stage
>                        addChild(view);
>                }
>
>                /**
>                 * Silce Image
>                 */
>                 private function sliceImage():void
>                 {
>                        _sliceBitmap = new SliceBitmap("images/dart.jpg", 3,
> 3)
>                        _sliceBitmap.addEventListener("doneSlicingImage",
> doneSlicingImage);
>                 }
>
>                 /**
>                 * Done Silcing Image
>                 */
>                 private function doneSlicingImage(evt:Event):void
>                 {
>                        trace("Done Slicing Image");
>                        _sliceBitmap.removeEventListener("doneSlicingImage",
> doneSlicingImage);
>                        //copy sliced bitmap to local arrays
>                        _cubeFrontMat = _sliceBitmap._bitmapGrid.concat();
>                        _cubeBackMat = _sliceBitmap._bitmapGrid.concat();
>
>                        initMaterials();
>                 }
>
>
>                /**
>                 * Initialise the materials
>                 */
>                private function initMaterials():void
>                {
>                        for (var i:int=0 ; i<numCubes ; ++i)
>                        {
>                                var sideMat:ColorMaterial = new
> ColorMaterial(0x333333);
>                                var frontMat:BitmapMaterial = new
> BitmapMaterial(Cast.bitmap(_cubeFrontMat[i]));
>                                var backMat:BitmapMaterial = new
> BitmapMaterial(Cast.bitmap(_cubeBackMat[i]));
>
>                                var CubeMat:CubeMaterialsData = new
> CubeMaterialsData();
>                                CubeMat.front = frontMat;
>                                CubeMat.back = backMat;
>                                CubeMat.bottom = sideMat;
>                                CubeMat.top = sideMat;
>                                CubeMat.left = sideMat;
>                                CubeMat.right = sideMat;
>
>                                _cubeMatData.push(CubeMat);
>                        }
>
>                        initObjects();
>                }
>
>                /**
>                 * Initialise the scene objects
>                 */
>                private function initObjects():void
>                {
>                        for (var i:int=0 ; i<numCubes ; ++i)
>                        {
>                                var cube:Cube = new Cube()
>                                cube.cubeMaterials = _cubeMatData[i];
>                                cube.x = _cubePosX[i];
>                                cube.y = _cubePosY[i];
>                                cube.width = 160;
>                                cube.height = 160;
>                                cube.depth = 20;
>                                cube.segmentsW = 5;
>                                cube.segmentsH = 5;
>                                cube.segmentsD = 5;
>                                _cubes.push(cube);
>                                scene.addChild(cube);
>                        }
>
>                        initListeners();
>                }
>
>                /**
>                 * Initialise the listeners
>                 */
>                private function initListeners():void
>                {
>                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
>                }
>
>                /**
>                 * Navigation and render loop
>                 */
>                private function onEnterFrame( e:Event ):void
>                {
>                        _cubes[4].rotationX += 2;
>                        view.render();
>                }
>
>        }//closes class
> }//closes package

Reply via email to