태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


AS3 Generator는 몇 개 있지만 파서는 없는 것 같습니다.

AIR에서는 HTML 컨트롤을 이용하는데 웹은 그게 없죠.

 

그래서 방법이 PDF를 SWF로 변환하고 그걸 로드해서 사용하는 건데요.

PDF2SWF를 이용합니다. http://wiki.swftools.org/wiki/Main_Page

 

Adobe AIR로 앱 만들기 페북 그룹의 쓰레드:
https://www.facebook.com/groups/315551565170142/permalink/393735527351745/


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.18 17:48

SharedObject 이용하여 iOS, Android 앱을 개발했을 경우,
최신 버전의 앱으로 업데이트하면 SharedObject가 초기화 되나요?

 

https://www.facebook.com/groups/315551565170142/permalink/389077064484258/


저작자 표시
신고
Posted by 원강민
낙서장2012.06.18 00:54

복잡한 것을 머리속에 넣고 그것이 지워지지 않도록 계속 덧칠을 하는군요.
탑을 높이 높이 쌓고 있지만 바람이라도 불어 무너질까봐 항상 불안하군요.
단순하게 살라는 조언에 고개를 끄덕이지만 단순한게 뭔지조차 모르는군요.
꽁꽁 움켜쥐고 살다가 어느 순간 구멍이라도 뚫리면 한 순간에 무너지겠군요.

- 경험담 -


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.15 15:00

아래 변수가 이해 되시는 분들이 함께 합니다. :-)
Adobe AIR로 앱 만들기 페이스북 그룹: https://www.facebook.com/groups/315551565170142/

 

AGAL 언어에 관심이 있다면 필히 가입하세요~


static protected var group1VS:String =
"mov vt0, va0\n" + "mov vt0, va1\n" + "mov vt0, va2\n" + "mov vt0, va3\n" +

/////////////////////////////////////////////////////////////////////
// animate
"mov vt0, va0\n" + // vertex stream x,y,z
/////////////////////////////////////////////////////////////////////

// worldTransform
"m44 vt0, vt0, vc1 \n" +

// add offset to this vertex (corner)
"mov vt1, vc0.xxxx\n" +
"sub vt1.x, va1.x, vc0.z\n" +
"sub vt1.y, vc0.z, va1.y\n" +
"mul vt1.xy, vt1.xy, va2.xy\n" + // vt1.xy \in [-.5,.5] <-- va1.xy = [0,1]

"mul vt2.xyz, vc5.xyz, vt1.x\n" + // row0 of camera modeltransform
"mul vt3.xyz, vc6.xyz, vt1.y\n" + // row1 of camera modeltransform
"add vt0.xyz, vt0.xyz, vt2.xyz \n" +
"add vt0.xyz, vt0.xyz, vt3.xyz \n" +

// cameraTransform
"m44 vt0, vt0, vc9 \n" +
"mov op, vt0 \n" +

// compute texcoord by mapping va1 to the view port
"mul vt0.xy, va1.xy, vc13.xy\n" + // texcoord. * wh
"mul vt1.xy, va3.xy, vc13.xy\n" + // ij*wh
"add vt0.xy, vt0.xy, vt1.xy\n" + //
"mov v0, vt0\n" +

// color is in vc16.xyz.
// gray is in vc17.xyz. Make particle gray as the particle time goes.
"mov vt0.w, va4.x\n" +
"mov vt0.xyz, vc16.xyz\n" +
"mul vt0.xyz, vt0.xyz, vt0.www\n" + // color * alpha
"sub vt1.w, vc0.y, va4.x\n" + // 1-alpha
"mul vt1.xyz, vc17.xyz, vt1.www\n" + // gray * (1-alpha)
"add vt0.xyz, vt0.xyz, vt1.xyz\n" +

"mov v1, vt0\n" +
"";


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.15 10:38

AIR에서는 연락처검색이나 메시지보내기, 통화하기 혹은 연락처 통화창에 띄우기 불가능하나요?

 

https://www.facebook.com/groups/315551565170142/permalink/387483324643632/


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.13 20:47

김나람


앱이 구동되는 동안 보여지는 그 이미지를 뭐라고 하죠?

AIR에서 그거 설정을 어떻게 해야 되나요.

xml에 뭔가 해당 항목이 있을 것 같기도 한데...


원강민 스플래시(Splash) 이미지인거 같네요.

Default.png 파일을 첨부하면 되요. xml에는 할거 없구요.


김나람 Default.png를 어디에 위치시켜야 하나요?


원강민 그냥 파일을 넣으면 되요..폴더 만들지 말고 루트에요..파일 패키징 하는 곳에 추가하면 되요..


김나람 넵. 감사합니다!


홍계준 우와.. 나도 입에 자꾸 맴돌기만하고 생각이 안나서 폭풍검색하고 왔더니.. 답이 있네 어헝헝..ㅡㅜ..


김택권 Slpash 이미지 라고 하는데 그거 적용 되는건 IOS 만 이고요 안드로이드는 앱에서 알아서 구현해야 합니다.


김나람 안드로이드에서는 안되는군요... 안드로이드에서 앱 화면이 뜨는데까지 너무 굼떠서 알아본거였는데...


원강민 안드로이드는 설정하는게 따로 있을꺼에요..구글링 한번 해보세요~


Rack Kyoon Kim SplashScreenImage?


지용호 안드로이드는 스플레시 없습니다. ㅋㅋ 오히려 그게 앱 동작을 느리게 하는 요인.


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.13 20:46

윤훈남님의 글..


윈도우상에서 ANE를 간단히 시험삼아 생성해봤습니다. 만들면서 알게된 ANE의 구조를 잠시 언급하겠습니다. ANE 파일을 최종적으로 zip 파일 형태이며 확장자만 ane이라고 정의내렸습니다.


확장자를 zip으로 바꾸고 알집에서 오픈할수 있습니다. 당연히..


내부 구조를 보면 META-INF\ANE 폴더내에 플랫폼별 폴더가 생성됩니다. 윈도우의 경우에는 Windows-x86이라는 폴더입니다. ANE 파일에 다양한 플랫폼 라이브러리를 함께 묶어줄수 있어서 하나의 ANE로 다중 플랫폼에서 운영 가능한 라이브러리를 개발할수 있습니다. 물론 그만큼 개발자 입장에서는 여러 플랫폼을 넓게 알아야겠지만.


어찌되었던 그 내부에는 dll 파일과 library.swf로 구성됩니다. dll 파일은 최소 두개의 함수를 외부로 익스포트해야 합니다. 익스포트된 파일 정보는 상위 xml 파일에 기록되어 있습니다. library.swf 파일은 dll 파일을 사용해서 클래스 레벨로 래핑한 as 파일을 acompc 라는 툴로 swc를 생성하면 함께 내부에 생성된 swf 파일인데, 간단히 as 파일 정도라고 생각하면 됩니다. 결국 ANE는 가장 밑단은 Native Call 형태로 구성하고, 외부에 노출하는 as 파일을 생성하고, 함께 묶어서 ANE를 생성합니다.


따라서 ANE를 사용하는 레벨에서는 레필된 as 파일과 동일하게 인식됩니다. 자세한 부분은 원강민님의 CS6에서 ANE를 사용하는 부분을 보시면 이해가 될겁니다.


개발자 입장에서는 C나 C++로 Native Call 가능한 라이브러리 파일을 생성하고, 일부를 익스포트한 후 xml로 익스포트 정보를 구성하고, 래핑할 as 파일을 생성해서 adt라는 툴로 묶어주면 됩니다.


=================================================


http://www.muticd.com/ANE.zip 


윈도우 기반으로 ANE 샘플을 대충 만들어 보왔습니다. 전체적인 개념을 익히는 목적으로 만들어본 샘플이라. 조금 시간이 걸렸습니다. COMPORT 통신을 할수 있도록 만든 ANE 샘플입니다.


내부에 쓰레드를 하나 더 돌려서 시리얼로부터 받아온 데이터를 큐에 쌓아두고 받아오는 구조입니다. 일단 기본적인 기능은 대부분 존재합니다. 윈도우 98이상에서 잘 돌아가도록 구성해봤습니다. 가능하면 의존적인 DLL이 없도록.. Libiconv 오픈 소스를 조금 조정해서 utf-8를 다른 텍스트로 엔코딩하도록 구성했습니다. Libiconv 라이브러리 역시 내부에 내장해서 외부 DLL를 사용하지 않도록 구성해봤습니다.


대충 전체적인 개념을 잡는 목적으로 사용하시면 될듯합니다. 제가 주로 사용하는 디렉터로 만든 플러그인과 속도면에서 거의 차이가 없습니다.


해당 파일에는 msvc6로 만든 모든 소스와 라이브러리 및 기본 샘플도 급하게나마 포함했습니다.


=================================================


ANE는 기본적으로 DLL를 사용하도록 해주는 구조입니다. 문제는 AIR의 배포 정책과 맞물려서 미묘한 문제가 생길 수 있습니다.


일반적으로 exe 파일과 exe와 동일한 폴더에 있는 DLL는 자동적으로 로딩이 필요하면 로딩이 됩니다. 즉 하나의 exe 모듈이 로드되는 경로에 의존적이죠.


문제는 air로 만든 결과물이 air 런타입 방식으로 실행되면 경로를 air 개발자가 독립적으로 제어할 수 없게 됩니다. 


또 다른 문제는 dll이 압축된 상태로 배포하는데, 실제 실행 단계에서는 어딘가에 압축을 풀게 됩니다. 문제는 압축이 풀리는 경로를 명확하게 air 개발자가 알기가 힘들며, 압축되어 있는 모든 dll를 동일한 경로에 풀어주는지도 알아봐야할 문제입니다.


또 다른 문제는 ANE 개발자가 ANE를 만드는 과정에서 디버깅이 힘들어집니다. 개발툴에서는 DLL의 경로와 exe 경로를 알고 있다면 개발툴 레벨에서 정확하게 디버깅이 가능합니다. C++이나 C로 작성하는 과정에서 흔하게 발생할 디버깅 방법에 대한 묘안이 없습니다.


결국 ANE가 조금 더 활성화될려면 DLL 참조에 대한 유연성을 확보해야 합니다. 이런 문제를 가장 효율적으로 하는 방법은 air 런타입 기반이 아니라 air+런타입이 통합된 exe 형태 배포 방식으로 발전해야 합니다.


=================================================


기본 ComportANE에 성능을 개선했습니다. 데이터 수신 속도를 개선, 이벤트를 적용하도록 수정했습니다. t.addEventListener(ComportEvent.RECVDATA,fn);와 같은 방식으로 컴포트로 들어온 데이터가 알람됩니다. 한개의 ByteArray 버퍼를 재사용하도록 개선.


=================================================


기본 ComportANE 에 성능 개선 사항.


- 데이터 수신 속도 개선

- 이벤트 모델 적용 addEventListener 사용 가능해짐.

- 한개의 ByteArray 버퍼를 재사용하도록 개선.

- 전체 포트 리스트 및 비 사용중인 포트 리스트 얻어내기


=================================================


갑자기 딴 생각하다가 AIR 프로젝트 설치후 과정이 궁금해서 추적하다보니 이런 사실을 알게 되는군요.


AIR 프로젝트를 생성하는 과정에서 dll를 추가하니 설치하면 exe와 동일한 폴더에 dll이 그대로 복사되는 군요.


그리고 동적으로 압축을 푼다고 생각했던 부분이 지금보니 제가 잘못 생각했던 거군요.


따라서 ANE에서 참조하는 DLL를 프로젝트 생성 과정에서 추가해주면 DLL 의존성 문제는 어느 정도 해결 가능하군요. 


또한 C++/C 개발자가 ANE를 개발하는 과정에서 디버깅도 가능합니다. 이쪽을 해본 분은 무슨 말인지 이해되실듯.


이제 다음 문제는 AIR 런타임 문제인데, 이 부분도 임베드 형식과 dll를 직접 추가하는 방식으로 해결할 수 있다면 좋을듯하군요.


생성된 exe를 조사해보니 OLE32.dll를 참고하지 않고 LoadLibrary를 참고하는 것을 보니 런타임 DLL를 찾아서 넣어도 런타임 문제는 해결될지도 모르겠다는 생각도 들군요. 


AIR 런타임 DLL에 대한 정보를 조금 더 찾아보고 발견되면 추가 게시글을 올릴께요.


저작자 표시
신고
Posted by 원강민
Adobe AIR2012.06.13 20:43

이번 AIR 3.3에서는 Flash Builder에서 디버깅이 가능하도록 변경된거 같네요. 그리고 fast 컴파일이 지원되는 것 같습니다. 전 그냥 기존 방법이 편해서 테스트는 안해봤는데 관심있으신 분들은 해보시고 리뷰 올려주세요~ :-)


원강민 ㅎㅎ 제가 그냥 했네요..말 그대로 완전 짱입니다..엄청 편하고 빠르네요. :-)

디버그 환경설정에서 on device 설정하고 ipa를 설치하고 실행하기만 하면 됩니다. 나머지는 빌더에서 자동으로 해줍니다.


저작자 표시
신고
Posted by 원강민
공부X32012.06.13 20:41

haxe + hxcpp + flash develop + VSC++

Haxe로 C++ 개발을 할 때 필요한 것들..


<참고>

http://haxe.org/doc/start/cpp

http://haxe.org/com/libs/hxcpp?version=6131

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express

http://www.flashdevelop.org/


Haxe 문서 공동 번역 프로젝트: http://haxe.springnote.com


저작자 표시
신고
Posted by 원강민
내가 만든 어플2012.06.13 20:03



저작자 표시
신고
Posted by 원강민

티스토리 툴바