DONGBUM on blog

Flash & ActionScript

플래시에서 콤보박스 폰트 변경

by on Jan.14, 2012, under Flash & ActionScript

플래시에서 ComboBox 컴포넌트를 사용했는데 클라이언트측의 요구로 콤보박스의 폰트를 변경해달라는 부탁이 왔다.

플래시 레퍼런스에는 이러한 내용들에 대해 기술된 것이 없어서 고민하다가 구글을 찾아보니 이미 외국에서 나와 똑같은 고민을 했던 사람이 있었다.

http://www.designscripting.com/2011/06/as3-combobox-font-embedding-problem-flash-cs5/

var arial:Font = new ArialFont();

var myFormatBlack:TextFormat = new TextFormat();
myFormatBlack.font = arial.fontName;
myFormatBlack.size = 18;
myFormatBlack.color = 0x000000;

myComboBox.textField.setStyle("embedFonts", true);
myComboBox.textField.setStyle("textFormat", myFormatBlack);
myComboBox.dropdown.setRendererStyle("embedFonts", true);
myComboBox.dropdown.setRendererStyle("textFormat", myFormatBlack);
myComboBox.setStyle("embedFonts", true);
myComboBox.setStyle("textFormat", myFormatBlack);
myComboBox.prompt = "Select State";
myComboBox.width = 248;
myComboBox.height = 25;
myComboBox.x = 100
myComboBox.y = 100
myComboBox.setStyle("textPadding", 1);

위의 코드를 참조하여 콤보박스의 폰트를 바꿀 수 있었다. 중요한 것은 라이브러리에서 폰트를 미리 등록해놔야 한다.

사용할 폰트를 임베디드 한 후 라이브러리에서 폰트를 선택한 후 properties를 선택해서 액션스크립트에서 사용할 수 있도록 체크하고 이름을 지정한다. 내 경우에는 윤고딕 같은 폰트는 알아보기 쉽게 ‘Yoon’이라는 이름으로 사용했다. 위의 코드에서는 폰트명을 ‘ArialFont’라고 지정하고 있다. 이것이 되지 않으면 저 코드도 아무 소용이 없다.

폰트를 임베디드했으면 콤보박스의 각 부위에 setStyle과 setRendererStyle 메서드를 이용하여 적용한다.

이 두가지만 잘 이해했다면 콤보박스에 폰트를 적용하는 것은 어렵지 않을 것 같다.

Leave a Comment :, , , , , more...

XML에서 캐리지리턴(엔터) 문제

by on Jan.02, 2012, under Flash & ActionScript

플래시에서 다음과 같은 코드를 입력했을 때 캐리지리턴(=엔터)가 한번이 아닌 두번이 입력되는 현상이 발생한다.

var xml:XML =

test11
줄바꿈

trace("=========================================");
trace(xml.child("title"));
trace("=========================================");
trace(xml.child("title").split("\r").join(""));
trace("=========================================");

원래 XML의 내용대로라면 한줄 내려서 입력되어야하지만 실제적으로는 빈 행이 두줄이 입력된다는 것. 어도비의 레퍼런스에서 XML, XMLList 부분을 아무리 찾아봐도 이에 대한 내용이 없다. 플래시의 버그인가..? 하는 생각을 하면서 구글신에게 물어본 결과 다음과 같은 글을 찾았다.

http://stackoverflow.com/questions/570656/as3-xml-and-line-spacing-problem

글 내용인 즉슨, line break에서 Carriage Return과 Line Feed가 같이 입력되므로 \r\n 이렇게 입력된다는 것이었다. 그러므로 \r로 입력된 부분을 찾아서 지우라는 말. String 클래스의 split 메서드를 써서 했다길래 나도 split 메서드로 해결 완료. 잘 된다. split 보다는 replace 메서드를 쓰는게 더 나을듯하다.

밑에 리플들을 보면 아마 서버 플랫폼에 따라 차이가 있다는 것 같은데 이것은 내가 윈도우서버를 가지고 있지 않으므로 패쓰.

Leave a Comment :, , , , more...

Eclipse 3.6 Helios Error

by on May.16, 2011, under Flash & ActionScript, Java

플래시 빌더를 4.5 버전으로 새로깔고 이것저것 플러그인을 설치하던 중 예상치 못한 에러를 만났다.

Redmine-connector를 인스톨하다가 난 오류인데 도저히 이 메시지를 보고 해결을 못하겠다. glassfish, jms라는 플러그인을 검색해봤으나 실패….

An error occurred while collecting items to be installed
session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,javax.mail.glassfish,1.4.1.v201005082020
No repository found containing: osgi.bundle,org.eclipse.equinox.log,1.2.100.v20100503
No repository found containing: osgi.bundle,org.eclipse.net4j.jms.api,3.0.0.v20110215-1551

도대체 이 오류가 뭔질 모르겠다. 다른 플러그인을 깔면서도 오류 때문에 깔리질 않아서 Subclipse를 빼고는 제대로 플러그인을 쓸수가 없는 상태. 이클립스 3.6 헬리오스 버전이 문제가 좀 많은 것 같다. 구글링을 해보며 이런 저런 메시지들을 검색해본 결과 헬리오스 버전의 버그인 것도 있고… 하여간 골치 아프다.

Leave a Comment :, , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Blogroll

A few highly recommended websites...