넷북들은 작은 공간에 기존의 키보드를 넣어야 하는 관계로 키의 사이즈를 줄이고 Fn 키를 중복하는 방법을 사용했다. 3벌식을 쓰는...
2008년 10월 30일 목요일
HP mini 1000 넷북
넷북 키보드 비교
HP mini 1000 넌 마음에 드는 키보드를 가졌구나
2008년 10월 25일 토요일
RIA Camp 2nd in Seoul 동영상
RIA Camp 2nd in Seoul 동영상
일시: 2008년 9월 30일(화) 오후1시 - 오후6시 장소: 강남교보타워 23층 B동 이벤트홀 | ||||||
|
시간 | 발표자 | 발표주제 | |
||
13:00 - 13:20 |
세미나장 입장하기 | |||||
| ||||||
13:20 - 13:30 |
박민형 전무 |
|||||
| ||||||
13:40 - 15:00 |
Ryan Stewart |
|||||
| ||||||
15:00 - 16:20 |
Chambers Ryan Stewart |
|||||
| ||||||
16:20 - 16:40 |
Break | |||||
16:40 - 17:00 |
오창훈 |
|||||
| ||||||
17:00 - 17:20 |
이희덕 |
|||||
| ||||||
17:20 - 17:40 |
김춘경 |
|||||
| ||||||
17:40 - 18:00 |
Q&A | |||||
2008년 9월 1일 월요일
Flex Sprite의 width/height 프라퍼티에 숨겨진 비밀(?)
펼쳐두기..
안녕하세요, 명랑늑대입니다. 이 카페에 가입한 후 첫 글을 남기게 되네요.
저는 최근에 Sprite을 상속한 클래스를 구현하다가 width, height(Sprite 클래스에 정의된 프라퍼티들)의 값을 생성자에서 변경하는 것이 잘 안 되는 문제를 겪었습니다.
카페를 검색해보니, 거친마루 님께서도 같은 문제를 겪으션던지 질문을 올리셨더군요.
http://cafe.naver.com/flexcomponent/2034
그런데 아직 해결되지 않은 의문인 건 같아서, 제가 좀더 파고 들어봤습니다.
Sprite 객체의 width/height 값을 변경하면 내부적으로 어떤 일이 일어나는가?
var aSprite:Sprite = new Sprite();
....
aSprite.width = 100;
위와 같이 Sprite 객체의 width 프라퍼티에 새 값을 대입하면, width의 값이 바뀌는 것으로 끝나지 않습니다.
Sprite
에 정의된 scaleX, scaleY도 함께 변합니다(사실은 그 외에도 함께 바뀌는 프라퍼티들이 여럿 더 있습니다만, 이번
논의와는 직접적인 관련이 없으므로 언급하지 않겠습니다). 아시다시피 scaleX, scaleY는 스케일링에 관련된 놈들이죠.
그렇다면 width 값을 바꾸려고 했을 뿐인데, 왜 스케일링에 관련된 프라퍼티들이 *자동으로* 바뀌는가?
이는 전형적인 GUI 컴포넌트의 크기를 바꾸는 것과 Sprite의 크기를 바꾸는 행위가 전혀 다른 의미를 내포하고 있기 때문이라고 할 수 있습니다.
예를 들어, 여러 개의 하위 컴포넌트가 들어있는 컨테이너의 크기를 바꾸면 어떤 일이 일어나나요?
하위 컴포넌트들의 크기도 함께 변할 것입니다(아닐 수도 있지만). 심지어는 컴포넌트들의 배치가 달라지기도 합니다. 그래서 레이아웃의 개념이 들어가죠. 즉, 컨테이너의 크기가 바뀐 비율과는 상관없이 레이아웃 정책에 의해 너비만 늘어나거나 위치가 바뀌거나 합니다.
그러나 Sprite은 전통적인 의미에서의 GUI 컴포넌트가 아닙니다. 레퍼런스 문서에도 설명되어 있듯이 일종의 MovieClip이죠.
동영상 재생기의 윈도우 크기를 바꾸면 어떻게 됩니까? 재생하고 있는 동영상의 화면 크기가 그에 맞춰 스케일링 됩니다. 이건 상식적으로도 당연한 행동입니다.
Sprite
의 행동도 이와 마찬가지입니다. Sprite의 크기를 바꾸면 그 자신이 화면에 그리는 내용은 물론이고 그 Sprite에
속해있는(아시다시피 Sprite은 DisplayObjectContainer입니다) 하위 DisplayObject들까지도 스케일링
됩니다.
즉, Sprite의 크기가 바뀌면 그 Sprite은 물론이고 다른 DisplayObject들의 스케일링까지 바꿔야 하므로, 크기가 얼마나 변했는지를 기억하고 있어야 합니다. 따라서 해당 프라퍼티인 scaleX, scaleY가 크기 변화와 함께 바뀌는 것이 당연하겠죠?
따라서 Sprite을 상속받은 클래스의 생성자에서 width/height의 값을 바꾸면 아무 소용이 없습니다.
왜냐하면, width/height의 초기값은 0이기 때문입니다.
예를 들어, width에 100을 대입하려고 하면 scaleX = newWidth / oldWidth이므로(정확한 공식은 아닙니다. scaleX의 이전 값을 고려해야 하죠 원래는) 100 / 0 = NaN, 즉 scaleX가 0이 됩니다.
그리고 width 값은 scaleX가 계산된 후에 scaleX * oldWidth가 되는 것 같습니다.
따라서 또한 0이 될 수 밖에 없죠.
(이 부분은 Sprite의 소스 코드가 없어서 확실하진 않습니다만, 개인적으로는 이렇게 추측합니다. 왜 그렇게 하는지는 모르겠구요. ㅎㅎ)
그리고 우리를 더 힘들게 만드는 문제점은 위와 같이 생성자에서 width/height에 값을 대입하고 나면, 이후에 무슨 짓을 해도 해당 Sprite이 화면에 나타나지 않는다는 점입니다.
scaleX 또는 scaleY가 0이 되므로 화면에 나타나지 않는게 당연합니다.
아시다시피 Sprite에 다른 DisplayObject를 add하거나 graphics에 뭔가를 그리면 Sprite의 width/height이 자동으로 바뀌지만, 스케일 팩터가 0이므로, 곱하고 나면 그릴 영역이 없습니다.
그렇다면 Sprite의 width/height 값은 언제 세팅하면 되는 것일까?
물론 width/height가 0이 아닐 때 세팅하면 되겠습니다. 즉, Sprite을 상속해서 만든 객체의 크기를 세팅하고 싶을 때에는 좀 귀찮지만 그 Sprite의 내용(하위 DisplayObject 또는 graphics에 직접 그린 내용)이 완성된 후에 하는 것이 가장 좋을 듯 합니다.
** 글을 쓰다보니 좀 길어졌네요.
혹시 UIComponent가 아니라 Sprite을 상대하다가 이런 비슷한 문제를 겪으신 분들께 조금이나마 도움이 됐으면 좋겠습니다.
댓글 정보
width는 html에서도 흔히 사용하는 픽셀단위의 고정값이라고 한다면
scale은 0~1까지의 백분율 값입니다. 이 두 속성의 차이는 단지 단위의 차위라고 생각하시는게 편하지 않을까 하는데요. |
2008년 8월 21일 목요일
간만에 연필로...
지우개 달린 연필 한다스를 받았다.
예전의 꿈이 생각 났다. 성능 시험삼아 ...
연필엔 High quality 라고 적혀 있는데 Low quality 다. 이런.. ㅡㅡ; ㅋ
2008년 8월 16일 토요일
2008년 8월 5일 화요일
OTTO 3D Store & vista 서비스
본 서비스는 Microsoft Visualstudio 2008의 핵심기술인 .NET framwork3.0 기반의 기술 WPF라는 것으로 구현했습니다.
그래서 사용상의 제약이 있는데
윈도우 VISTA
.NET Framework 3.0 이상
인터넷익스플로러 7 이상
그래서 배포 장벽이 아직 있는것 같습니다
2008년 8월 1일 금요일
Flex에 SVN 설치 하기
Subversion(SVN)은 CVS의 단점을 개선한 버젼관리 프로그램입니다.
Flex Builder 는 eclipse 기반 이므로 Plugin으로 SVN을 설치 할 수 있습니다.
http://subversion.tigris.org/ -> http://subclipse.tigris.org/ 를 보면
1. zip 파일로 다운로드 하여 eclipse에 덮어 쓰는 방법과
2. eclipse 'update and install' 을 사용하는 방법이 있습니다.
1. 번 방법은 해보니 뭔가 꼬이는것 같고
조금 더 번거롭긴해도 2번 방법이 안정적인거 같습니다.
Eclipse update site URL: http://subclipse.tigris.org/update_1.4.x 을 찾아서
Help -> Software Updates -> Find and Install -> Search for new feature to install 선택
Window -> Other Views -> Show View -> SVN Repositories 를 선택
SVN 저장소를 사용하시면 됩니다.
Flex 여러개의 object addChild
targetContainer.removeAllChildren();
for(var i:int=0; i<count; i++) {
var swfLoader:SWFLoader = new SWFLoader();
targetContainer.addChild(swfLoader);
}
2008년 7월 24일 목요일
PHP 코드 점화장치 CodeIgniter
CodeIgniter가 내게는 '코드에 불을 붙이다' 란 의미로 받아 들여진다. 얼마전부터 웹프로그래밍을 시작 하면서 PHP 프레임웤에 관심을 가지게 되었다. 프레임웤이 없으면 자유도는 있겠지만 너무 난잡한 프로그래밍이 되기 쉽더라. 나중에 코드도 마구 꼬이고 암튼 내게는 무지 필요한거다.
우선 이리저리 찾다가 Zend Framework의 동영상 강좌를 보면서 따라 해 봤는데 이건 익숙해지는게 쉽진 않은거 같다. 용량도 좀 되는거 같고, 그래서 여러 사람들이 가볍고 빠르다고 칭찬한 코드점화기(CodeIgniter)를 테스트 해 보기로 했다.
우선 기본 셋팅을 하고 난뒤 나오는 첫페이지에서 'Page rendered in 0.0223 seconds'로 페이지 속도가 나오는 걸 보니 이걸 제대로 좀 봐야겠다는 의지가 불끈 한다. ^^
관련글
2008년 7월 23일 수요일
인터넷 광고
블로그 관련 광고의 춘추 전국시대가 도래하려나 보다
애드센스류의 광고들로 시작 해서 책이나 제품과 연관된 광고들 까지 가지각색이다.
인터넷 광고에 대한 정보를 모아 놓은 http://adsenser.co.kr/ 같은 사이트도 있어서 관련 정보를 찾기도 쉽다.
인터넷 사이트를 최적화 하는 단계에서 블로그만이 아니더라도 읽을 만한 글, 예제 사이트도 친절하게 링크 되어 있다.
Trac 사용기 모음
상위글 : Trac
TOW(Trac On Window) http://trac.tistory.com/
Trac
Trac은 SVN (파일 버전 관리 시스템) + Wiki (문서관리) + Ticket (해야할일 관리) 을 모아놓은 프로젝트 관리 시스템이라고 볼수 있다.
- svn 으로 업데이트한 자료를 Resource 에서 직접 확인 가능하고
- TimeLine 에서 시간순으로 변화 내용을 볼수 있다.
- 코드에서 문제점이 발생했을시 Ticket 을 발행하면 문제해결후 Ticket를 종료 하면된다.
Trac 사용법 :
대표적인 사용 예
- 태터툴즈 텍스트큐브 Trac : http://dev.textcube.org/
사용기 모음 :Trac on Windows 등 각종 설치 및 사용기 모음.
한글화 프로젝트 : 개발팀에서 다국어 버젼으로 제작중이라 버젼 10에서 한글화 작업 멈춤.
텍스트큐브의 빠른 속도에 감탄하다.
이미지출처 : madskillz.tistory.com
개발자 입장에서 보는 현재의 textcube는 너무 빠르다.
이거 내 운영체제의 어플리케이션보다 나은거 같다. (요즘 유독 내 컴이 느려... )
1. 서버당 사용자가 많지 않아서 일까?
2. 데이타베이스 최적화?
3. 울집 랜선이 갑자기 속도가 좋아졌나^^?
아 궁금하다 궁금하다 궁금 궁금...
암튼 쾌적환 환경이 블로깅을 즐겁게 해 준다. ^^