본문 바로가기

Development

[Flex] 주의해야 할 int, String 비교 var valueInt :int = 0; var valueObject :Object = valueInt; trace( valueObject == "" ); trace( valueObject == 0 ); 이렇게 코딩을 했을 때 어떻게 나올까? 답은 true true이다. int타입이고 값이 0인데 왜 빈칸( "" )과의 비교가 왜 true가 나오는 걸까? 저번에 쓴 "String타입 "false"를 Boolean타입으로 변환하는 방법"에 적어놓은 이유와 같다. 이 포스트에서 좀 더 자세히 풀자면, Flex는 Java와 다르게 Boolean 이외의 타입으로도 논리연산이 가능하다. 이 기능은 양날의 검으로 어떻게 보면 편하고 어떻게 보면 불편한 기능이다. 개인적으로는 안 쓰고 버그 안 나는 게 좋은 것 같다..
[Flex] String타입 "false"를 Boolean타입으로 변환하는 방법 var booleanValue :Boolean = Boolean( "false" ); // booleanValue is true String타입으로 된 "true"와 비교해서 사용해야 한다. 위와 같이 작성하면 false가 아니라 true 값이 나온다.이유는 간단하다. String값에 데이터가 있었기 때문. 없었다면 false 값이 되었을 것이다. 그래서 String타입 문자 그대로 Boolean으로 변환하고 싶다면 다음과 같이 하면 된다. public static const TRUE :String = "true"; var booleanValue :Boolean = "false" == TRUE ? true : false; // booleanValue is false 참 쉽죠잉? 매번 if 문을 작성하긴 ..
[Flex] 개행 문자 문제 s:Label이든 mx:Label이든 \n (역슬래시, backslash)를 사용하는 건 좋지 않다. 이상하게 개행이 안 먹고 문자 그대로 나올 때가 종종 생긴다. 그래서 \n은 사용하지 않고 을 사용하면 된다. 참고 은 개행 은 공백
[Flex] Error creating AIR file:xxx: error 103: application.versionNumber is an unexpected element/attribute Error:Error creating AIR file:xxx: error 103: application.versionNumber is an unexpected element/attribute Solution:FlexMonkey를 쓰고 싶어서 소스를 받고 export 하는데 에러가 났다. 찾아보니 아주 단순한 문제였다. AIR에서 xxx-app.xml을 쓰는 규칙이 바뀌었다. 그래서 XML 태그 중에 versionNumber가 있는데 이걸 그냥 x.x.x으로 고쳐주면 된다.
[Oracle] translate 함수 사용 방법 replace 함수는 하나의 기준 값만을 가지고 값을 변경하지만 translate 함수는 여러 기준 값을 이용하여 값을 변경할 수 있다. 코드 샘플을 보면 딱 이해가 될 것이다. translate( 변경대상값, 변경기준값, 변경될값 ) translate( '001487573', '0123456789', '0123456789' ) 이렇게 사용하면 원래 숫자 '001487573'였지만 특수문자'001487573'으로 변경되어 리턴될 것이다.
[Flex] Object, Array, XML 생성 및 선언 방법 Java나 Flex나 new 키워드를 되도록 사용하지 않는 게 좋다. 속도가 빠르거나 메모리를 적게 차지하는 장점도 있고 Factory Pattern 등을 이용해서 생성하면 나중에 객체 Lifecycle을 관리할 때 편하게 할 수도 있다. Java에서는 Array 생성 시 {} 중괄호를 사용하는데 Flex에서는 [] 대괄호를 사용하기 때문에 좀 헷갈리 수 있다. 1. Object var object :Object = {}; object.name = "홍홍홍"; object.age = 18; var object2 :Object = { name: "홍홍홍", age: 18 }; Object는 Dynamic Class라고 불리우는데 JavaScript에서의 Object Literal처럼 사용할 수 있다. Ob..
[Query문] INSERT INTO SELECT 가~~~끔씩 문법 순서를 잊어먹어서 적어놓는 INSERT INTO SELECT 문. 간단하게 설명하자면 INSERT를 SELECT 해온 값으로 넣는 MERGE 다음으로 자주 쓰는 마법의 쿼리문이다. INSERT INTO INSERT_TABLE_NAME ( SELECT COLUMN1, COLUMN2, COLUMN3, COLUMN4 FROM SELECT_TABLE_NAME WHERE SID = 1 ); INSERT_TABLE_NAME : INSERT가 적용될, 실제 값이 들어갈 테이블명COLUMN1~4 : 가져올 데이터, 그리고 넣어줄 데이터가 될.SELECT_TABLE_NAME : 가져올 데이터가 있는 테이블명WHERE~ : WHERE절은 있어도 되고 없어도 되지만 테이블을 통째로 복사할 거 아니면 쓴다고..
[Flex] Image의 실제 사이즈 구하기( width, height ) //width 넓이 image.contentWidth //height 높이 image.contentHeight
[Flex] Flex Monster Debugger Flex나 Flash에서 사용할 수 있는 Debugger 툴이다. air 형태의 프로그램과 swc 형태의 library 파일을 사용하여 Flex 프로젝트에 추가하여 사용하면 Logger나 UI Hierarchy를 사용할 수 있다. 나는 Flash Builder를 사용하는데 기본 디버거는 많이 불편해서 찾아봤더니 이런 게 있었다. 참으로 좋은 세상이야~ http://demonsterdebugger.com/
[8.0/8.1] F8 기능 활성화하여 안전모드 들어가기 관리자 권한으로 cmd 실행해서 아래 커맨드를 사용하면 된다. 활성화bcdedit /set {default} bootmenupolicy legacy 비활성화bcdedit /set {default} bootmenupolicy standard
[Flex] Error 리소스 번들 lang에 대한 소스를 찾을 수 없습니다. Error:리소스 번들 lang에 대한 소스를 찾을 수 없습니다. Solution:Flex Project의 Properties에 Compiler Arguments에 -source-path=locale/{locale} 옵션 추가.당연히 locale 위치 맞춰서 입력해야 함.
[Flex] Error 테마 'halo'이(가) 있는 유형 'mx.containers.HBox'에서만 스타일 'borderThickness'이(가) 지원됩니다. Error:테마 'halo'이(가) 있는 유형 'mx.containers.HBox'에서만 스타일 'borderThickness'이(가) 지원됩니다. Solution:Flex Project의 Properties에 Flex Theme 메뉴에서 Halo 테마를 선택해주면 된다. PS. Flex Library Project로 생성한 프로젝트라면 halo.swc 파일을 복사하고 Compiler Option으로 -theme /lib/halo.swc을 추가 해주면 된다.