Archive for the 'Flash-AS2.0' Category

Page 3 of 3

Action 초기화 순서

Timeline –> MovieClip

항상 기억하자 하면서도 어느순간 잊어버려 엄청난 고생을 한다. 액션 초기화 순서는 타임라인이 무비클립보다 항상 먼저 일어난다. 따라서 타임라인의 액션과 같은 프레임상에 무비클립이 있을경우 그 무비클립을 제어하려고 하면 영 말을 듣지 않는다.

이것은 타임라인이 초기화될때 제어하려고하는 무비클립이 아직 초기화되지 않기 때문에 발생하는 문제이다.

해결방안

  1. 타임라인의 액션의 위치를 제어하려고하는 무비클립의 위치보다 항상 뒤프레임에 위치하도록 함
  2. 일정시간 딜레이후 타임라인 상의 액션을 실행한다


Object 의 scope 변경

클래스 안에 메소드가 중첩될경우 현재 클래스 scope를 참조하려고 일일이 this 키워드를 사용해 코드 가독성이 좀 떨어졌는데 알고보니 7.0 버전부터 delegate 클래스를 지원하고 있었다…

class com.vkimone.utils.ExtDelegate {
function ExtDelegate(f : Function) {
//생성자 필요없음…..
}
/**————————————————————————
* 함수를 다른 오브젝트 영역으로 설정할수 있음..apply 또는 call 과 같은 기능
* 오브젝트와 함수 이외에 나머지는 파라미터로 넘겨줌
* @param obj 오브젝트 영역
* @param func 실행할 함수
*————————————————————————*/
public static function create(obj:Object, func:Function):Function{
var f = function(){
var target = arguments.callee.target;
var func = arguments.callee.func;
var args=arguments.callee.args;
return func.apply(target, args);
};
f.target = arguments.shift();
f.func = arguments.shift();
f.args=arguments;
return f;
}
}

원본코드는 스코프변경후 실행할 메소드의 파라미터를 넘겨줄수 없었는데 파라미터까지 지원하게 좀 손봤다..함수를 참조값으로 넘길수 있다는 점이 좀 흥미롭다..

btn.onRelease=ExtDelegate .create(this,test,param1,param2…….);