flex4.6 모바일 스테이지 3d 응용 프로그램 개발(一): 환경 구축
아쉽게도 자신의 사이트 도메인 이름이 모두 효력을 잃었습니다. 개인 사이트가 개통되기 전에 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.