flex4.6 모바일 스테이지 3d 응용 프로그램 개발(一): 환경 구축

3653 단어
2년 동안 블로그를 쓰지 않았는데, 요 며칠 갑자기 블로그를 쓰는 충동이 생겼다.
아쉽게도 자신의 사이트 도메인 이름이 모두 효력을 잃었습니다. 개인 사이트가 개통되기 전에 csdn에 정착하여 기술 블로그를 쓰십시오.
에어2의 발표는 이미 휴대전화(android,ios)에서 에어를 이용하여 Stage3d 관련 응용을 개발할 수 있게 되었다.
여기에 개발 환경 구축 방법을 적으세요.
1.flex 4.6 설치
2. 4.6 자동 에어sdk가 3.1이기 때문에 adobe 홈페이지에서 에어의 최신 sdk(3.2)를 검색해야 합니다. adobe 홈페이지에서 에어sdk를 검색하면 됩니다.
다운로드 후 flex4. 덮어쓰기6의 sdk 디렉토리(예: C:\Program Files\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0
3. 새 모바일 프로젝트, app xml에direct,true를 설정하고compile 매개 변수에 -swf-version 15 추가
이 정도면 됐어요. 테스트를 발표할 때 실기나 테스트기를 선택할 수 있어요.여기에 테스트 코드를 발표하여 나의 샤오미와 아이폰 4s에서 테스트를 통과하였다.
[SWF(frameRate="60", backgroundColor="#FFFFFF")]
	public class testMobile extends Sprite {
		
		protected var context3D:Context3D;
		protected var program:Program3D;
		protected var vertexbuffer:VertexBuffer3D;
		protected var indexbuffer:IndexBuffer3D;
		
		public function testMobile() {
			super();
			
			// support autoOrients
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			//
			var stage3d:Stage3D = stage.stage3Ds[0];
			
			stage3d.addEventListener(Event.CONTEXT3D_CREATE, initStage3d);
			stage3d.requestContext3D();
			
			addEventListener(Event.ENTER_FRAME, onRender);
		}
		
		private function initStage3d(evt:Event):void {
			context3D = stage.stage3Ds[0].context3D;			
			context3D.configureBackBuffer(800, 600, 1, true);
			
			var vertices:Vector. = Vector.([
				-0.3,-0.3,0, 1, 0, 0, // x, y, z, r, g, b
				-0.3, 0.3, 0, 0, 1, 0,
				0.3, 0.3, 0, 0, 0, 1]);
			
			// Create VertexBuffer3D. 3 vertices, of 6 Numbers each
			vertexbuffer = context3D.createVertexBuffer(3, 6);
			// Upload VertexBuffer3D to GPU. Offset 0, 3 vertices
			vertexbuffer.uploadFromVector(vertices, 0, 3);				
			
			var indices:Vector. = Vector.([0, 1, 2]);
			
			// Create IndexBuffer3D. Total of 3 indices. 1 triangle of 3 vertices
			indexbuffer = context3D.createIndexBuffer(3);			
			// Upload IndexBuffer3D to GPU. Offset 0, count 3
			indexbuffer.uploadFromVector (indices, 0, 3);			
			
			var vertexShaderAssembler : AGALMiniAssembler = new AGALMiniAssembler();
			vertexShaderAssembler.assemble( Context3DProgramType.VERTEX,
				"m44 op, va0, vc0
" + // pos to clipspace "mov v0, va1" // copy color ); var fragmentShaderAssembler : AGALMiniAssembler= new AGALMiniAssembler(); fragmentShaderAssembler.assemble( Context3DProgramType.FRAGMENT, "mov oc, v0" ); program = context3D.createProgram(); program.upload( vertexShaderAssembler.agalcode, fragmentShaderAssembler.agalcode); } protected function onRender(e:Event):void { if ( !context3D ) return; context3D.clear ( 1, 1, 1, 1 ); // vertex position to attribute register 0 context3D.setVertexBufferAt (0, vertexbuffer, 0, Context3DVertexBufferFormat.FLOAT_3); // color to attribute register 1 context3D.setVertexBufferAt(1, vertexbuffer, 3, Context3DVertexBufferFormat.FLOAT_3); // assign shader program context3D.setProgram(program); var m:Matrix3D = new Matrix3D(); m.appendRotation(getTimer()*stage.frameRate/40, Vector3D.Z_AXIS); context3D.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0, m, true); context3D.drawTriangles(indexbuffer); context3D.present(); } }

위 좁쌀, 아래 아이폰 4s
참고 자료 및 확대 읽기:
1. Flash Player 11.2 및 AIR 3.2 RC 버전(기능 설명, 설치 프로세스 및 Stage3D 모바일 개발 지침)
2、Using Flash Builder 4.5 to package applications for Apple iOS devices
3、Hello Triangle

좋은 웹페이지 즐겨찾기