추적한다 코드의 간단한 조각 :ActionScript 3은 단순한 동기 아키텍처 언어가 아니어야합니까?
- 완료
- 시험 리엔!
내가 완전히 멀리 그에서 뭔가를 얻을
시나리오 A :
var __functions_to_execute:Array;
function start():void {
__functions_to_execute =[];
__functions_to_execute.push(futile_trace());
__functions_to_execute.push(futile_trace('test'));
execute_functions();
}
function execute_functions():void {
if(__functions_to_execute.length){
//where shift on this Array remove the first element and returns it
var exec:Function =__functions_to_execute.shift();
exec;
//I tried this too, just in case
//__functions_to_execute[0];
//__functions_to_execute.shift();
} else trace("done!");
}
function futile_trace(_value:String ='rien'):void {
trace(_value);
execute_functions();
}
start();
아주 간단합니다. 하지만 결과는 다음과 같습니다
- 리엔!
function futile_trace(_value:String ='rien'):void { trace(_value); setTimeout(execute_functions, 0); }
후 결과는 다음과 같습니다 :
- 테스트
이에 사용되지 않는 기능을 추가로 futile_trace 기능을 변경할 수 있습니다
- 은 리엔
- 시험
- 완료!
확인 후, 나 자신에게 말했다는 왜, 내가 execute_functions를 호출 할 때 범위를 변경할 수 있습니다, 그래서 시도 :
function futile_trace(_value:String ='rien'):void {
trace(_value);
extra_step();
}
function extra_step():void {
execute_functions();
}
이 결과 무슨 생각?! 그래 :
- 리엔
- 완료!
- 테스트
그래서?! 추적 기능이 좋지 않습니까? 느린거야? 함수에 인수를 전달하면 다른 함수와 비교할 때 너무 많은 시간이 걸리는 것은 사실입니까? 내 말은 ... 와우!
내가 이런 종류의 이상한 일을 피할 수있는 방법이 있습니까?
은 (공식적으로, 내 프로젝트는 {리엔, 수행 및 테스트} ... 내가 "추적 문을 생략"로 컴파일하면 완전히 다르게 반응 코드의 15,000 라인을 가지고 여부를 추적 할 수 없습니다. 귀하의 의견들에 대한감사합니다.
덕분에 남자와 결과 (void)를 실제 함수가 아닌 배열에 저장하십시오! 젠장, 오케이, 그래서 나는 디버거를 사용하여 @Francis 쌍 (func, args) – Francis
배열 배열을 사용하여이 테스트를 계속할 것이다. –
내가 제안한 코드가 너무 단순 해 보이기 때문에 추적 또는 기타 이상한 비동기 이벤트가 발생할 것으로 의심되었습니다. 하지만 당신 말이 맞아요. 디버그를 사용해야합니다. 디버그에 관해서는 다른 질문을하겠습니다 : 마지막 프로젝트는 Flash Player 10.0이 설치된 Linux에서 Firefox 3.0에서 실행되는 독립 실행 형 응용 프로그램입니다. 어떤 도구를 파일로 실행하는 플래시 컨테이너를 비방하는 데 사용해야합니까? (실행중인 아파치가 없습니다. 바로 플래시를 로컬 경로에서 바로 파이어 폭스로 재생합니다)? 어떤 제안이라도 환영합니다.감사합니다 – Francis