와....

안드로이드에서 Adobe AIR어플이 돌아가네요. 일단 포딩할만한 어플이 없어서(저는 대부분 Flex로 작업을 해서-_-) 공씨님이 전에 플래시액션스크립트 카페에서 발표했던 자료를 가지고 포팅해봤어요-_-
http://flashist.tistory.com/68

일단 하드웨어 가속 기능이 현재 pre-release버전에는 지원되지 않아서 그래픽 관련된 것에 퍼포먼스는 상당히 떨어진다고 얘기를 하는 듯 하네요. 그래서 공씨님이 만든 이 아트웍플래시 같은 건 느리게 돌아갈 수 밖에 없는 듯. 물론 최적화하는 방법이 있을 것 같긴 한데, 제가 몰라서..-_- 저 소개한 블로그에서 나온 게임들은 대체 어디서 받아서 해볼 수 있는건지... 동영상을 보면 굉장히 부드럽게 구현되어있는데, 코드를 보고 싶네요 ㅠㅠ

환경은 Android 2.1이상에서만 되는 듯.

방식은 이렇습니다. Adobe AIR 런타임을 안드로이드폰에 설치해야합니다. 그리고 Flash 등을 이용해 apk파일로 만든 파일을 설치하면 런타임이 설치가 되어있으면 실행이 됩니다. 이런방식인 듯.

소개한 블로그입니다.
http://blogs.adobe.com/air/2010/05/air_android_prerelease.html

그 어도비랩사이트 가면 실제 런타임과 Adobe AIR2.5 SDK를 받아서 개발할 수 있습니다.
http://labs.adobe.com/technologies/air2/android/

아...그리고 개발방식은 역시나 Flash CS5를 이용하는 방법과 Flash Builder를 이용하는 방법이 있는데요. 아직 flex프레임워크로는 안되는 듯 합니다. 디폴트로 WindowedApplication이 있어야하는데, 이 안드로이드는 윈도우 방식이 아니다보니...-_- 순수 ActionScript로 짤 수 있습니다.

하지만 Flash builder를 이용하게 되면 디버깅이나 테스트를 해볼 수 없습니다-_- 실제 에뮬레이터나 폰에 배포하기 전까지 모양을 볼 수 없어요. 정신 건강상 Flash CS5를 이용하시는 게 ^^ 일단 Flash CS5기준으로 설명을....


1. 런타임 설치

랩사이트가서 가입하고 로그인하면 파일들을 받을 수 있습니다.
근데, 런타임이 Device용이랑 Emulator용이 따로 있음. 어쨌든, 런타임을 받으면 6메가 정도인데, 설치하면 20메가 입니다(내 모토로이 용량도 없는데....ㅠㅠ).

2. Flash CS5 확장기능 설치

랩사이트에서 Flash CS5에서 AIR for Android Extension for Flash CS5를 받은다음에, Adobe Extension Manager CS5를 이용해서 설치를 합니다. 그런다음에 Flash CS5를 실행하면 새로운 템플릿이 하나 생깁니다.
AIR for Android에서 480x800Android 모냥이 하나 생깁니다.

3. 이제 셋팅 끝 개발-_-

이제 그냥 개발하면 되는 듯-_-

4. 배포 및 실행

오른쪽에 속성에 보면 AIRAndroid 설정이 있는데, 그거 편집누르면 다양한 publish옵션이 있습니다. 인증서 선택하고, 비밀번호 치고, 그다음에 Android SDK의 adb.exe파일 경로까지 잡아주면 배포후에 바로 실행도 할 수 있습니다.
사용자 삽입 이미지


5. 구동화면

사용자 삽입 이미지

물론 실제 Adobe AIR용 API는 사용해보진 않았는데, ActionScript로만 Android어플을 만들 수가 있는 것이네요. 근데 꼭 Adobe AIR런타임을 거쳐야하는지가 의문이 드네요. 그냥 apk파일로 만들어지는 거라면...... 아....안되겠구나..... 쓰다보니 사실 java에서 쓰이는거랑 Adobe AIR에서 쓰이는거랑 완벽하게 포팅을 할 순 없겠죠. 뭔 소린지....-_-

어쨌든, 그냥 신기...하지만 프리릴리즈기때문에, 뭐 아직 멀은 듯.

PS. Flash Player for Android도 나오긴 나왔는데, Android 2.2버전에서만 되어서 모토로이에서 테스트해볼 수 없네요. 넥서스원이 2.2업할 수 있다고 하는데, 한번 구동하는 걸 보고 싶네요^^

[로그인][오픈아이디란?]

submit
뭐 제 개인적인 취향이지만 한번 써봅니다.

안드로이드를 3달동안 써보면서 느낀거지만, 일단 안드로이드에 대해서 많이 알아야합니다. 아무것도 모르는 사람이 사용하기에는 좀 배워야한다는 느낌이 좀 드는군요. IT에 종사하는 저도 좀 어려웠으니까요 ㅠㅠ
물론 제조업체에서 잘 만들어서 내면 됩니다만, 모토로이는 그런 게 없었던 것 같아요. 하나부터 열까지 다 찾아보고 설치하고, 그러게 되네요^^

도대체 순정어플이....다 시중에 나와있는 어플보다 좋지않아서-_- 설치하게 되는.... 그러면서 엄청 공부하게 되었다는....ㅠㅠ


1. 홈어플 - LauncherPro Beta

일단 모토로이를 구입하면 순정홈이 깔려있습니다. 이런 홈도 어플이기때문에 다른 사람이 만든 것을 디폴트로 해놓고 사용할 수 있습니다.
이 어플은 최근 안드로이드 커뮤니티에 엄청난 파장을 일으킨 홈어플이죠-_- 반응속도가 너무 좋아서-_-
마켓에서 검색하면 나옵니다.
설치를 하고 홈을 누르면 디폴트로 순정홈을 선택할 것인지 LauncherPro를 선택할 것인지 나오는데, 디폴트체크하고 LauncherPro를 선택하면 계속 이것이 홈이 됩니다^^
사용자 삽입 이미지
아래에는 전화, 주소록, 어플목록, 디폴트문자, 디폴트웹브라우저가 기본 5개의 아이콘이 있어요. 제가 원하는 배치라 너무 맘에 듭니다. 지금은 수정은 못하지만, 나중에 수정하게 업데이트한다고 하네요. 전 굳이 수정안해도 맘에듬!^^ (그나저나 내 아이유바탕화면 들켰....ㅠㅠㅠ)


2. 문자어플 - Handcent SMS

아마...다 깔았을꺼에요. 기본문자어플이 안좋아서-_- 기본문자어플은 문자가 오면 팝업으로 띄워주지 않고, 알림바에서만 보여줘서 알림바내리고 선택해야지 답장을 보낼 수 있는데, 얘는 그냥 팝업이 떠서 바로 문자를 답장할 수 있죠^^
사용자 삽입 이미지
게다가 아이폰스타일의 이쁜 채팅형식도 맘에 드네요. 위는 형과의 초간단대화.jpg-_-
그 외에 많은 기능들이 있긴 있는데, 전 팝업때문에 쓰는거라^^
아...예전에 home++나 게임같은 full화면 게임을 할 때에는 세로로 팝업이 뜨고 키보드입력창이 뜰 때 입력부분이 가려지는데, 그건 설정에서 팝업설정 -> 키보드열기 체크 하면 입력부분이 보입니다^^ 혹시 모르시는 분 참고하세요-_-


3. 인터넷브라우저 어플 - Dolphine Browser HD

다들 유료어플 Xscope를 많이 쓰시는데, 전 돌핀이 더 좋네요. 돌핀이 짱임. 전에 한번 소개도 했었죠^^

[유틸리티] Android 내장브라우저보다 좋은 돌핀 브라우저(Dolphin Browser)

근데, HD버전이 새로 나왔는데, 얘기로는 풀브라우징에 강한 브라우저라는군요. 근데, 뭐 순정이나 Xscope랑 다른 건 모르겠.....
암튼, 무료이구요. 물론 광고가 있긴 있습니다만(광고제거버전은 돈주고 사야함ㅠㅠ), Xscope보다 부가기능도 많고, 굉장히 스킨도 이쁘고 그래서 맘에 드네요^^
사용자 삽입 이미지
멀티탭간에 전환도 오른쪽이나 왼쪽으로 드래그를 하면 쉽게 전환할 수 있어요^^ 게다가 제스처기능도 있어서 아주 익숙하게 잘만 사용하면 멋있게(?) 사용할 수 있을 듯^^


4. 음악어플 - MortPlayer Music, MortPlayer Music Widget

이건 폴더별로 재생할 수 있는 기능을 가진 플레이어입니다. 전 아직도 태그기반에 playlist를 생성해서 재생하는 게 아직도 익숙치 않습니다-_- 그냥 폴더재생이 마냥 좋습니다 ㅠㅠ
사용자 삽입 이미지
폴더별로 재생을 할 수 있고, 폴더넘겨서 재생, 전체곡재생, 한곡반복, 셔플 등등~ 다양한 반복기능을 제공합니다. 스킨도 바꿀 수 있는데, 스킨은 그냥 디폴트가 나은 듯-_-
근데, 좀 이해가 안되는 부분이 Widget은.....어플을 검색해서 또 설치해야한다는 것-_-(왜 그렇게 만들었지-_-)
암튼, 위젯을 설치하면 이 플레이어 화면 볼일이 별로 없습니다.
위젯에서 다 컨트롤이 가능하거든요^^
사용자 삽입 이미지
자켓을 누르면 일시정지가 되고, 노래제목을 누르면 메뉴가 떠서 컨트롤할 수 있고, 아래 버튼처럼 앞으로 감기, 다음곡 넘기기 등 컨트롤을 할 수 있습니다^^ 완전 좋음! 얼마전까지 버그가 좀 있었는데, 지금 거의 고쳐진 듯! 최고임! 아이유 최고-_-


5. 시계 날씨 어플 - Beautiful Widget

이놈은 유료어플입니다. 시계와 날씨가 결합한 위젯이 있고, 그외에 다양한 설정 컨트롤 위젯이 존재합니다. 뭐 진동모드, gps, 블루투스 켜고 끄기 등의 설정 위젯이 존재하구요.
일단 home위젯은 간지용으로 달아놓을 수 있어서 좋습니다. 한번에 날씨를 파악할 수 있어서 더 좋구요^^
사용자 삽입 이미지
전 맨위에 홈어플에 나온 것 처럼, 작은걸 쓰는데, 왜냐하면 아이유얼굴이 가려지기 때문입니다-_- 그래서 큰거랑 작은거 놔두면 이렇게 되는군요. 스킨도 자신이 원하는 걸로 바로 다운 받아 적용이 가능해집니다. 굉장히 간지나는 시계날씨위젯입니다^^


진짜 필수적인 것만 소개했네요^^ 핫핫~ 모토로이구입하신 분들은 꼭 다 설치하세요! 그래야만 해요!^^
  1. 김만중

    오늘 모토로이 구매햇는데요 ㅠ인터넷으로 산거라
    내일모레 도착예정인데 ..
    요즘 모토로이가 메모리문제로 소송들어가고 그랫던데
    필수어플들을 모두 다운받는데
    메모리문제는 없나요?

    • 머드초보

      메모리는 좀 적긴합니다.
      사용자마다 좀 틀린데 욕심이 많으신 분이라면 모토로이는 좀 아닙니다^^
      용량이 적거든요^^

  2. 김만중

    외장메모리를 산다든가 그런방법도 없는건가요 ㅠ?

    • 백화

      지금 운영 체제는 안되고요
      나중에 프로요 업글 나와야 외장메모리에 어플 저장할수 있어요
      지금은 내장 메모리 늘릴려면 skaf 지우는 수밖에 없네요.

    • 머드초보

      네 어플은 외장메모리에 설치가 안됩니다.
      백화님 말씀대로 프로요가 나와야될 듯 합니다^^

  3. OpenID Logo HARRY

    어플은 어떻게 지우죠?

    • 머드초보

      설정 -> 응용프로그램 -> 응용프로그램관리 들어가셔서 찾으셔서 지우면 됩니다.
      런쳐프로를 이용하시면 더욱 쉽게 지울 수 있어요~
      런쳐프로검색 고고싱~

  4. 핫팩로이

    그래봐야 현실은 쓰다 화상입는 핫팩에 불과

    카메라 노이즈 때문에 정신나갈지경입니다.

  5. 대발

    1번 홈어플 아무리 찾아도 못 찾겠어요 ㅠㅠ

[로그인][오픈아이디란?]

submit
집에서 안하고 굴러다니는 wii있으시죠?-_-(우리집은 그렇다는 ㅠㅠ 같이 할 사람이 없다는 ㅠㅠㅠ)

Wii 리모콘은 블루투스 방식으로 통신을 하기 때문에 블루투스를 어플에서 컨트롤할 수 있는 안드로이드에서 Wii리모콘으로 게임을 할 수 있게하는 어플이 나왔습니다.

에뮬에 있는 가상키보드로 컨트롤하려면 아주 돌아버리죠. 입력도 잘 안되고-_- 컨트롤하기 힘들고-_- 제가 스토리오브도어 보스전을 하다가 때려쳤는데, wii리모콘으로 바꾸고나서 바로 깼습니다 ㅠㅠ
물론 이거랑 호환되는 어플은 아직 에뮬밖에 없는 듯 하구요. 다른 게임에서도 같이 지원되면 좋을텐데^^
그래도 에뮬이 된다는 것만으로도 참 기쁘네요. 이제 출퇴근시간에 스토리오브도어를 깰 수 있을 것 같......

준비물은 당연히 안드로이드폰과 Wii 리모콘과 에뮬프로그램입니다. Snesoid(슈퍼패미콤에뮬), Gensoid(메가드라이브에뮬) 등등...


1. wiimote controller 0.25 Alpha 설치 후 셋팅

일단 마켓으로 들어가서 wii라고 검색하면 여러가지가 나오는데, 저걸 설치합니다.
설치하고 실행하면 WiiControllerIME를 설정해야한다고 나옵니다. Yes를 누르면 "언어 및 키보드설정"이 나오는데, WiiControllerIME를 선택해주시면 됩니다^^ 그리고 뒤로가기버튼으로 돌아옵니다.
1. Init and Connect를 누르기전에, Wii리모콘의 1, 2버튼을 누르면 Search모드가 되는 것 같습니다. 아래 4개버튼이 다 빤짝빤짝거릴 때 1. Init and Connect를 선택합니다^^ 아...블루투스도 켜주시구요!
그럼 Searching하다가 리모콘 찾고, 연결이 됨! 리모콘 버튼 눌렀을 때 아래와 같이 버튼이 반응하면 된거임!
사용자 삽입 이미지
그리고 나서 2번을 선택해서 입력방법을 WiiControllerIME로 바꿉니다. 그럼 이제부터 안드로이드 가상 키보드가 입력창을 선택해도 나오지 않으니 주의하세요^^ 다시 돌려놔야지 나옵니다.


2. 에뮬프로그램(SNesoid, Gensoid)실행


실행 후 Settings에 가면 Use input method라는 항목이 있는데, 체크를 합니다. 그리고 Key mappings에서 키를 셋팅하면 됩니다.


3. 게임실행하면 끝~
사용자 삽입 이미지

굉장히 잘됩니다. 근데 메가드라이브 같은 경우 버튼이 abc 3개거든요.  wii는 실제 버튼은 1, 2랑 A, B버튼 4개가 있긴 있는데, 조낸......불편합니다-_- 그래도 하다보니 적응은 됩니다만-_-
스토리오브도어를 할 수 있게 되었어요 ㅠㅠ 출퇴근 시간에 해야지!(근데....그냥 오늘부터 3일연휴에 집에서 이것만해도 깰 것 같아....ㅠㅠ)

PS. 근데, 게임을 하다가 가끔 블루투스가 끊어지는 경우가 있는 것 같습니다. 저 좀 하다가 끊어졌는데, 일부러 끊어버리는 건지-_- 암튼, 하필 보스랑 싸우고 있었는데, 끊어져서 죽을뻔 했......
[로그인][오픈아이디란?]

submit
air어플을 만들어야할 것 같아서(근데 이제 취소된 듯-_-), ApplicationUpdater를 삽질해봤습니다.

일단 air 어플리케이션은 수정사항이 있으면 자동적으로 업데이트를 체크해서 어플을 업데이트하는 기능이 꼭 들어가야합니다. 그래서 ApplicationUpdater클래스를 이용해 삽질을 해봤습니다.

보면 ApplicationUpdaterUI라는 클래스도 있는데, 이건 ui적으로 기능이 이미 구현이 되어있는 것입니다. 사용자가 이런 ui를 새롭게 꾸미려면 ApplicationUpdater클래스를 이용해서 내부적으로 처리를 하고, 나머지 ui는 직접 꾸밀 수가 있습니다. 그래서 사용자가 직접 새로운 업데이트air파일을 받는 모습과 업데이트체크를 해서 현재 업데이트가 있는지 등을 구현할 수 있습니다.

사실 과정은 applicationUpdater.checkNow()한번 때려버리면 업데이트가 있으면, 논스톱으로 강제 업데이트를 시켜버리긴합니다만-_- 강제업데이트말고, 사용자에게 업데이트 과정을 알려주기 위해서 과정을 삽질해봤습니다.

강제 업데이트를 중지하려면 각각 프로세스별로 event 중지를 시켜야합니다.


<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
title="Sample Version Checker Application"
applicationComplete="applicationCompleteHandler()">
<mx:Script>
<![CDATA[
import air.update.events.DownloadErrorEvent;
import air.update.events.StatusUpdateErrorEvent;
import air.update.events.StatusUpdateEvent;
import air.update.events.UpdateEvent;
import air.update.ApplicationUpdater;

private var applicationUpdater:ApplicationUpdater;

private function applicationCompleteHandler():void
{
// 현재버전 찍기
var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appXml.namespace();
var appVersion:String = appXml.ns::version[0];
log.text += "현재 어플리케이션버전 : " + appVersion + "\n";

// ApplicationUpdater초기화
applicationUpdater = new ApplicationUpdater();
applicationUpdater.configurationFile = new File("app:/update.xml");

// initialize할 때
applicationUpdater.addEventListener(UpdateEvent.INITIALIZED, initializedUpdateEventHandler);
applicationUpdater.addEventListener(ErrorEvent.ERROR, errorErrorEventHandler);

// checkNow할 때
applicationUpdater.addEventListener(StatusUpdateEvent.UPDATE_STATUS, updateStatusStatusUpdateEventHandler);
applicationUpdater.addEventListener(UpdateEvent.CHECK_FOR_UPDATE, checkForUpdateUpdateEventHandler);
applicationUpdater.addEventListener(StatusUpdateErrorEvent.UPDATE_ERROR, updateErrorStatusUpdateEventHandler);

// downloadUpdate할 때
applicationUpdater.addEventListener(UpdateEvent.DOWNLOAD_START, downloadStartUpdateEventHandler);
applicationUpdater.addEventListener(ProgressEvent.PROGRESS, progressProgressEventHandler);
applicationUpdater.addEventListener(UpdateEvent.DOWNLOAD_COMPLETE, downloadCompleteUpdateEventHandler);
applicationUpdater.addEventListener(DownloadErrorEvent.DOWNLOAD_ERROR, downloadErrorDownloadErrorEventHandler);

// installUpdate할 때
applicationUpdater.addEventListener(UpdateEvent.BEFORE_INSTALL, beforeInstallUpdateEventHandler);

// 초기화
applicationUpdater.initialize();
}

private function initializedUpdateEventHandler(event:UpdateEvent):void
{
log.text += "initialized : " + applicationUpdater.currentState +"\n";
applicationUpdater.checkNow();
}

private function errorErrorEventHandler(event:ErrorEvent):void
{
log.text += "error : " + applicationUpdater.currentState + "\n";
}

private function updateStatusStatusUpdateEventHandler(event:StatusUpdateEvent):void
{
event.preventDefault();
log.text += "update_status : " + applicationUpdater.currentState +"\n";
log.text += "version : " + event.version + "\n";
log.text += "available : " + event.available + "\n";

if (event.available)
{
applicationUpdater.downloadUpdate();
}
}

private function updateErrorStatusUpdateEventHandler(event:StatusUpdateEvent):void
{
log.text += "update_error : " + applicationUpdater.currentState + "\n";
}

private function checkForUpdateUpdateEventHandler(event:UpdateEvent):void
{
log.text += "check_for_update : " + applicationUpdater.currentState + "\n";
}

private function downloadStartUpdateEventHandler(event:UpdateEvent):void
{
log.text += "download_start : " + applicationUpdater.currentState + "\n";
}

private function progressProgressEventHandler(event:ProgressEvent):void
{
log.text += "progress : " + event.bytesLoaded + "/" + event.bytesTotal + "\n";
}

private function downloadCompleteUpdateEventHandler(event:UpdateEvent):void
{
event.preventDefault();
log.text += "download_complete : " + applicationUpdater.currentState + "\n";
btnInstall.visible = true;
}

private function downloadErrorDownloadErrorEventHandler(event:DownloadErrorEvent):void
{
log.text += "download_error : " + applicationUpdater.currentState + "\n";
}

private function beforeInstallUpdateEventHandler(event:UpdateEvent):void
{
log.text += "before_install : " + applicationUpdater.currentState + "\n";
}

private function clickInstallHandler(event:MouseEvent):void
{
applicationUpdater.installUpdate();
}
]]>
</mx:Script>
<mx:TextArea id="log" width="100%" height="100%" />
<mx:Button id="btnInstall" click="clickInstallHandler(event)" visible="false" label="설치"/>
</mx:WindowedApplication>


air안에 있는 update.xml파일
<?xml version="1.0" encoding="utf-8"?> 
<configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0" >
<url>웹에있는update.xml파일 주소</url>
<delay>1</delay>
</configuration>


web에 올려진 update.xml파일
<?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
<version>1.5</version>
<url>업데이트할 air파일 주소</url>
<description>
<![CDATA[update! 1.5!]]>
</description>
</update>


과정은 initialize()한다음에 checkNow()를 호출하면....
현재 업데이트가 있는지 update_status가 발생하면, 그 event변수에 version과 available값이 오는데, 거기에 available이 true면 업데이트가 있는 겁니다.
downloadUpdate()를 호출하면 파일을 막 다운로드하는데, 파일 받는 과정을 progressevent로 받을 수 있습니다.
완료가 되면 downloadComplete이벤트가 발생해서 installUpdate()를 때려주면 어플이 종료되고 업데이트를 시작합니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

PS. 오늘따라....시간이 엄청 안가네-_-
[로그인][오픈아이디란?]

submit
최근 스티브잡스횽이 까고 있는 플래시-_-

CS5 한글판이 나와서 한번 깔아봤는데, 역시 전 한글이 편하네요-_- 어설픈 한글로 되어있어도 그냥 영어로 된 것 보단 낫다고 생각하는 1人...

일단 Flash랑 Flash Builder를 둘 다 깔아야해요~
안깔면 안깔려있다고 뭐라그래요~

일단 Flash에서 액션스크립트 편집기가 좋아졌다고 하는데(전 잘 안써봐서-_-), 여전히 안좋은 것 같은 느낌이 드는....
액션스크립트 클래스 편집은 그냥 Flash Builder에서 하면 맘 편하네요~
둘이서 연동이 되어서 빌더에서 에러 수정 및 편집이 매우 용이해요~

일단 플래시화면!
사용자 삽입 이미지
일단 Flash Builder도 같이 띄워놓아야 합니다. 안그러면 선택하라는 거 안나오는 것 같음.
여기서 ActionScript3프로젝트로 새로 만든다음에, ActionScript 3.0 클래스를 새로 만들면
"어떤 응용 프로그램에서 ActionScript3.0 클래스를 만들어야 합니까?"라는 말로 물어보고, Flash Professional인지 Flash Builder인지 선택할 수 있어요.
그러면 Flash Builder에서 해당 Flash프로젝트 파일인 fla파일을 선택하면 되는데요. 그러면 자동으로 프로젝트도 만들고, ActionScript Class만드는 창도 떠서 만들어지게 됩니다.
package
{
import flash.display.Sprite;

public class DrawRect extends Sprite
{
public function DrawRect()
{
this.graphics.beginFill(0x000000);
this.graphics.drawRect(0, 0, 100, 100);
this.graphics.endFill();
}
}
}

사각형을 그리고~ flash에서 불러올 때 자동으로 DrawRect라는 클래스가 코드힌트로 나옴!
사용자 삽입 이미지

var drawRect:DrawRect = new DrawRect();
this.addChild(drawRect);


사용자 삽입 이미지
잼있는 건 Flash Builder에서도 Control + Enter눌러도 된다는......
일단....여전이 Flash에서 ActionScript편집은 불편합니다. 그래서 얘네들이 Flash Builder 연동을 해서 하는 것 같은데, 정말 괜찮은 기능인 듯 합니다.
  1. 길땡

    플렉스 그래프가 이쁜것 같아서. . .

    DB의 값을 받아와서 그래프로 만들어주려고 했는데. . .

    아직 그렇다할 자료가 ㅋㅋㅋㅋㅋ ㅠㅠㅠㅠㅠ

    그래도 여기와서 많은 정보 얻고 갑니다. . .ㅎㅎ

    • 머드초보

      아...일단 직접 다 구현하기 힘드시면 flex에서 제공하는 많은 차트가 있거든요. 그걸 사용하시는게^^
      이쁘고 좋습니다^^

  2. 성주

    저는 왜 FlashBuilder에서 Ctrl+Enter하면 줄바꿈이 될까요...

    • 머드초보

      Flash Builder랑 Flash CS5는 다른 어플리케이션입니다.
      위에껀 Flash CS5입니다^^

    • 성주

      알아냈어요!!
      Flash Builder에서 프로젝트 만들때 Flash Professional Project로 해서 fla 파일 연결하면 빌더에서 ctrl+enter로도 테스트무비를 할 수 있더라고요

    • 머드초보

      헐퀴~ Flash Builder에서도 되는군요 ^^

    • 비밀방문자

      관리자만 볼 수 있는 댓글입니다.

    • 머드초보

      헉-_-
      뭐지.....-_-
      내가 아닌 사람이 글을 쓴건가 ㅠㅠ
      그...그렇네요. 저 요즘 좀 오락가락해서 ㅠㅠ
      죄....죄송합니다 ㅠㅠ

[로그인][오픈아이디란?]

submit
1 2 3 4 5 6 7 ... 98