2009-07-28 11 views

Odpowiedz

6

To nie jest stała, ale ta linia kodu daje liczbę linia:

trace(">",new Error().getStackTrace().match(/(?<=:)[0-9]*(?=])/g)[0]); 

PS: to będzie działać tylko wtedy, gdy plik SWF jest kompilowany w trybie debugowania

+0

wow, to jest cool – jedierikb

+0

Bardzo ładny sztuczka! – HanClinto

+0

Dziękuję wam !!! – OXMO456

2

Aby użyć sztuczki OXMO456 za jako funkcję użyj tylko wskaźnika 1 z wyniku match (zamiast indeksu 0). Poniższy kod robi to i sprawdza możliwości debugowania:

import flash.system.Capabilities; 

/** 
* Returns the positive line number from which the function is called, if 
* available, otherwise returns a negative number. 
*/ 
function lineNumber():int { 
    var ret:int = -1; 
    if (Capabilities.isDebugger) { 
    ret = new Error().getStackTrace().match(/(?<=:)[0-9]*(?=])/g)[1]; 
    } 
    return ret; 
} 

Przykład:

trace('line ' + lineNumber() + ' reached!'); 
Powiązane problemy