package be.nascom.flash10_tests.widgets{ import be.nascom.util.MathFunctions; import flash.display.Sprite; /** * An extremely simple implementation of a rotating 3d cube menu * uses only rudimentary 3d features (rotateX, rotateY) with very cheap flat shading */ public class graphic_player_10_cube_be_nascom_flash10_tests_widgets_SimpleShadeCube extends SimpleCube{ public function graphic_player_10_cube_be_nascom_flash10_tests_widgets_SimpleShadeCube(materials:Array){ super(materials); } override protected function zSort():void{ var pair:SimpleCubeSortPair; for each(pair in _sort_pairs){ //if(pair.side==null)return; pair.z=pair.side.material.transform.getRelativeMatrix3D(parent).position.z; //trace(pair.z); //CubeSimpleShadeMaterial(pair.side.material).updateShader(MathFunctions.normalize(pair.z,-100,100)); //ISimpleShaderMaterial(pair.side.material).updateShader(MathFunctions.normalize(pair.z,-100,100)); ISimpleShaderMaterial(pair.side.material).updateShader(MathFunctions.normalize(pair.z,-100,100)); removeChild(pair.side); } _sort_pairs.sortOn("z", Array.NUMERIC | Array.DESCENDING); var i:uint=0; for(i=0;i<6;i++){ addChild(SimpleCubeSortPair(_sort_pairs[i]).side); } } } }