플렉스
델리마운트 위키
목차 |
플렉스 빌더
서버와 연동한 개발환경
서버 프로젝트에 플렉스 프로젝트의 바이너리 폴더를 Symbolic Link로 연결함으로서 손쉽게 릴리즈 환경과 동일한 형태로 개발에 임할 수 있습니다.
본래 NTFS 파일시스템은 Symbolic Link를 지원하지만, 윈도우 XP는 전문가보다는 일반인에 친숙한 OS를 지향하여 이 기능을 드러내지 않습니다. 윈도우 XP 사용자의 경우에는 Symbolic Link 지원을 위해 Junction v1.05를 설치해주세요. 실행파일을 특정 폴더에 저장한 후, 해당 폴더를 path 설정에 추가해주시면 됩니다. 또는 시스템 폴더(윈도 XP의 경우 C:\WINDOWS\system32) 밑에 복사해도 됩니다.
윈도우 비스타 사용자는 자체적으로 Symbolic Link 툴이 내장되어 있습니다.
Rails 서버 + Flex
- Command Prompt를 실행하여, Rails 프로젝트의 public 폴더로 이동합니다.
- 다음과 같은 명령어로 public 폴더 밑에 flex 라는 이름으로 flex 프로젝트의 bin-debug 폴더를 Symbolic Link 합니다.
junction flex "path/to/flex/bin-debug" - Flex 프로젝트에서 Run > Debug > Other 를 클릭합니다.
- 좌측 Flex Application 에서 해당 프로젝트의 Application 을 선택한 후, URL or path to launch 의 Use defaults 를 체크 해제 합니다.
- Debug, Profile, Run 에 다음과 같은 형태의 Rails 서버의 주소를 적어줍니다.
http://localhost:3000/flex/MyApplication.html
RSL 프로젝트 참조하기
- Flex Navigator > Properties 창 > Flex Build Path > Library path 탭 > Add Product 버튼
- Build path libraries에서 추가된 프로젝트 선택합니다.
- Link Type을 RSL로 변경합니다.
[주의] Build path libraries에서 프로젝트 간의 빌드 우선 순위가 있습니다. 참조되는 프로젝트를 위에 배치합니다.
연관된 프로젝트 체크아웃 후 최초 빌드하기
RSL 처럼 연관된 프로젝트들을 체크아웃 후 빌드가 정상적으로 되지 않는 경우가 있습니다. 만약 참조해야하는 swf 파일이 존재하지 않아 빌드가 실패한 경우 아래와 같이 진행하도록 합니다.
- Project > Build Automatically를 체크 해제합니다.
- Project > Clean...을 클릭합니다.
- Clean 창에서 Clear all projects 선택, Start a build immediately를 체크 해제한 후 OK를 클릭합니다.
- 프로젝트 간의 종속성이 낮은 순서대로 프로젝트를 선택한 후 컨텍스트 메뉴에서 Build Project를 클릭합니다.
Flex Navigator 단축키 설정하기
- Window > Preferences 창 > General > Keys
- Include unbound commands 체크합니다.
- Show View (View:Flex Navigator) 선택(검색 가능)합니다.
- Binding에 Ctrl + ` 입력 후 OK 클릭합니다.
[주의] Ctrl + ` 단축키는 이미 사용되고 있습니다.
ActionScript
ObjectUtil
만약 아무 property도 담지 않은 Object인지 확인하고자 한다면, 다음과 같은 코드로 확인할 수 있다. <source lang=actionscript> if ( 0 == ObjectUtil.compare( {}, params ) ) {
// Do if params has no properties
} </source>
플렉스와 JavaScript 연동
ActionScript 에서 JavaScript 함수 호출
- ActionScript Side
<source lang=actionscript> import flash.external.ExternalInterface;
function callJavaScriptFunction() : void {
ExternalInterface.call( "foo", "안녕" );
} </source>
- JavaScript Side
<source lang=javascript> function foo( message ) {
alert( message );
} </source>
JavaScript 에서 ActionScript 함수 호출
- MXML Side (MyApplication.mxml)
<source lang=actionscript> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
import mx.controls.Alert;
protected override function createChildren() : void {
super.createChildren();
ExternalInterface.addCallback( "foo", foo );
}
public function foo( message : String ) : void {
Alert.show( message );
}
]]>
</mx:Script>
</mx:Application> </source>
- JavaScript Side
<source lang=javascript> function callActionScriptFunction() {
MyApplication.foo( "안녕" );
} </source>
