'2008/05'에 해당되는 글 8건
- 2008/05/26 [Flex] Application 에 스크롤바 생기게하기
- 2008/05/22 ActionScript2.0 컴포넌트 제작
- 2008/05/22 [metaWeblog] metaWeblog.newPost 사용법
- 2008/05/15 [jQuery] 초간단하게 만드는 multi select
- 2008/05/06 [Flex] sort()의 option 사용하기
- 2008/05/06 [Flex] measuredWidth, measuredHeight 에 대한 이해
- 2008/05/02 [box2d] ApplyForce와 ApplyImpulse 의 차이점
- 2008/05/02 오픈소스 업로드 컴포넌트
<mx:Application width="1280" height="1000" >
이런식으로 명시적으로 높이와 너비를 지정해버리면 스크롤바가 생기지않는다
버그인가... 아니면 Application 의 라이프사이클중에서 높이와 너비가 지정되버리면 return 되어버리는 함수가 있는것인가
어쨌든간에 Application 에 스크롤바가 생기게하려면
<mx:Application verticalScrollPolicy = "on" >
as2.0 에는 이벤트 제어가 상당히 제한되어있는데, 이문서를 보고 한층 발전된 이벤트 디스패칭 방법에 대해서 알게되었다.
http://www.person13.com/articles/components/creatingcomponents.html
이것을 활용하면 굳이 자신의 블로그 관리자 화면을 열지 않고도 글을 쓰고, 삭제하는 에디터를 만들 수가있다.
서버에 다음과같은 xml 을 http post로 넘기면된다.
이것은 "글쓰기" 예제이다.
<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param>
<value>0101679</value>
</param>
<param>
<value>me</value>
</param>
<param>
<value>gObBlEdYgOoK</value>
</param>
<param>
<value>
<struct>
<member>
<name>description</name>
<value>..top secret report...</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
예제 XML 출처 : http://www.intertwingly.net/stories/2003/01/26/evolve.html
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("#add").click(function(){
$("#s1 option:selected").each(function(){
$(this).appendTo("#s2");
});
});
$("#del").click(function(){
$("#s2 option:selected").each(function(){
$(this).appendTo("#s1");
});
});
});
</script>
<body>
<select multiple id="s1">
<option>aaa</option>
<option>bbb</option>
<option>ccc</option>
<option>ddd</option>
</select>
<input type="button" value="추가" id="add" />
<input type="button" value="삭제" id="del" />
<select multiple id="s2">
</select>
</body>
</html>
append와 appendTo의 차이점:
$(obj).append(some);
하면 some 객체를 obj 의 가장 마지막 자식객체로 등록한다는 말이고
$(obj).appendTo(some);
하면 obj 객체를 some 객체의 가장 마지막 자식객체로 등록한다는 말이다.
그리고 위에보면 each 라고 있는데 이것은 jQuery 객체에 내장된 함수다
피라미터로 function을 넘겨야하는데 function 안에서 this 라고 하면 현재의 dom 객체를 참조한다
근데 dom 객체 자체로는 기능이 별로없으므로 $(this) 이렇게 사용하는것이다.
$(this) 이것은 jQuery 객체를 리턴한다.
Array 클래스의 sort() 메서드는 기본적으로 "문자열 오름차순 정렬"을 한다
배열에 숫자가 포함되있더라도 이것을 문자로 취급하여 정렬을 한다
그러므로 숫자를 정렬할떄는 메서드의 두번째인자에 옵션값을 넣어줘야한다
arr.sort(Array.NUMERIC);
숫자취급 + 내림차순 을 하고싶다면
arr.sort(Array.NUMERIC | Array.DESCENDING);
하면된다.
정렬함수로 sortOn() 이라는것도있는데
여기에는 첫번째인자로 필드명을 넣어야한다
예를들어
arr[0] = {x:0, y:1}
arr[1] = {x:1, y:0}
일때,
arr.sortOn("x", Array.NUMERIC | Array.DESCENDING);
하면
x 필드의 값을 정렬 값으로 하고, 숫자로 취급하며 내림차순 정렬한다는 것이다.
프로그래머가 컴포넌트의 width 와 height를 명시적으로 지정하지않으면 컴포넌트 생성시에 컴포넌트 자체적으로 너비와 높이를 계산한다.
예를들어서
var label = new Label("무궁화 삼천리 화려강산");
addChild(label)
여기서보면 라벨의 width와 height를 정하지않았으므로 Label 컴포넌트 내부적으로 너비와 높이가 계산된다는 말이다.
그럼 이 내부적으로 계산된 너비와 높이에 어떻게 참조 할 수 있을까?
모든 UIComponent에는 measuredWidth(조절된 너비) 와 measuredHeight(조절된 높이) 라는 멤버 변수가있다
즉 label.measuredWidth 하면 너비값을 얻을수 있는것이고
label.measuredHeight하면 높이값을 얻을 수 있는것이다.
만약 프로그래머가 컴포넌트의 높이와 너비를 명시적으로 지정한다면 measuredWidth 와 measuredHeight는 어떻게 되는것일까?
예륻들어
var label = new Label("무궁화 삼천리 화려강산")
label.width = 100;
label.height = 100;
addChild(label)
그리고 label.measuredWidth나 label.measuredHeight 에 접근해보면 0 또는 NaN 이라고 뜰것이다.
즉 명시적으로 높이와 너비가 지정됬기때문에 내부적으로 계산이 이루어지지 않은것이다.
b2Body 클래스에는 ApplyForce와 ApplyImpulse 라는 메서드가 있다.
전자는 말그대로 b2Body에 "힘을 가하는" 것이고후자는 b2Body에 "충격량을 가하는" 것이다.
var body:b2Body = ...blah blah
time step이 1/30 이라고 가정할때,
body.ApplyForce(new b2Vec2(0, 100), body.GetWorldCenter());
은 100N 의 힘을 1/30초 만큼 가한다. 즉 충격량은 N * S = 100 * (1/30) = 3.33333333
정도가 되는것이다.
body.ApplyForce(new b2Vec2(0, 100), body.GetWorldCenter());
time step 에 관계없이, 100 (kg*m/s) 만큼의 충격량을 가해버리는 것이다.
결과적으로 봤을때 첫번쨰 인자에 같은 크기의 벡터를 넣었어도, ApplyImpulse 가 더 큰효과를 발휘한다.
time step과 관계되지 않았기때문이다.

이올린에 북마크하기
이올린에 추천하기
Prev
Rss Feed