카테고리 보관물: AS2

Using “setTimeout()” in a custom class.

ActionScript 2.0을 사용할 때, 플래시 8에서 추가된 setTimeout() 메소드를 사용하면 편리하지만, 클래스에서 setTimeout()를 사용하면 다음과 같이 에러가 발생합니다.

There is no method with the name ‘setTimeout’.

그래서 setTimeout() 대신 setInterval() 메소드를 사용하는 경우가 생기죠. 그럴 필요 없이 $(LocalData)/Classes/toplevel.as 파일을 수정하면 이 문제가 말끔히 해결됩니다.
이 파일을 열어서 다음 2줄을 추가하고, 저장합니다. 그리고 플래시를 재시작하면 클래스에서도 setTimeout() 메소드를 문제없이 사용할 수 있습니다.

intrinsic function clearTimeout(id:Number):Void;
intrinsic function setTimeout():Number;

ActionScript 3.0의 경우라면 다음과 같이 utils 패키지의 메소드들을 임포트 해주면 됩니다.

import	flash.utils.setTimeout;
import	flash.utils.clearTimeout;

Array.length is a read-write property.

Array.length is a read-write property. I should’ve know it.
I just thought it was a read-only property. I came to know it reading a copy of EAS3.0.
Array.length 속성이 리드-라이트 였네요. 이런걸 지금까지 모르고 있었다니…
당연히 Read-only일 거라고 생각하고 있었는데, EAS3.0을 보다가 알게 되었네요.
Array.lengthがread-write属性だったんですね。なぜ今まで知らなかったんだろう……
当然read-onlyだと思っていったのに、EAS3.0を読みながら分かった。

length property
length:uint [read-write]

Language Version : ActionScript 3.0
Player Version : Flash Player 9

A non-negative integer specifying the number of elements in the array. This property is automatically updated when new elements are added to the array. When you assign a value to an array element (for example, my_array[index] = value), if index is a number, and index+1 is greater than the length property, the length property is updated to index+1.

Note: If you assign a value to the length property that is shorter than the existing length, the array will be truncated.

quote from ActionScript 3.0 Language Reference

1
2
3
4
var arr:Array = new Array(0, 1, 2, 3, 4, 5, 6);
trace(arr);// output 0,1,2,3,4,5,6
arr.length = 4;
trace(arr);// output 0,1,2,3
If the newly assigned length is shorter than the existing value, items whose index is larger than the length will be removed from the array and the array will be shortened to the specified length. In some cases, it is more useful than Array.slice() or Array.splice() methods.
위와 같이 length에 현재 길이보다 작은 값을 입력하면, length 이후의 아이템들을 제거하고 배열이 입력받은 길이로 줄어들게 됩니다. 경우에 따라서는 Array.slice(), Array.splice() 보다 유용할 것 같네요.
若し、新しいlengthが現在のlengthより少ないと、それ以後の配列要素は取り去れて、その配列の長さは短くなります。時折Array.slice()やArray.splice()メソッドより便利そうです。

tweener

Yesterday, jin_u told me about Tweener. Tweener is an open source(MIT License) library for tweening in ActionScript 2 and 3. It has more features than the Flash native Tween class.

For more informaton, visit the official website at Google Code and Tweener Documentation and Language Reference.

어제 사내 스터디에서 진우Tweener에 대해서 알려주었습니다. Tweener는 액션스크립트 2와 3에서 트위닝을 위한 오픈소스(MIT 라이센스) 라이브러리입니다. 플래시 내장 Tween 클래스보다 많은 기능을 가지고 있네요.

자세한 정보는 Google Code의 공식 홈페이지Tweener 도움말을 참고하세요.

昨日jin_uからTweenerについて聴いた。Tweenerはオープンソース(MIT License)ライブラリーとしてtweening機能を提供します。このクラスはフラッシュ内蔵クラスより機能が多いんです。

詳しい情報はGoogle Codeの公式ホームページ、またはTweenerマニュアルへ…