_global이라는 예약어를 사용하여 함수를 선언하면, 경로명 없이 함수의 이름만으로도 함수를 호출할 수 있습니다.
_global.함수명 = function(매개변수) {
실행할 액션들;
};
-------------------------------------------------------------------------------------------
예제문]
// 무비클립을 (targetx, targety)로 회전시키는 함수
_global.rotateTo = function(mc, targetx, targety){
var diffX = targetx - mc._x;
var diffY = targety - mc._y;
mc._rotation = Math.atan2(diffY, diffX)*180/Math.PI;
};
// 무비클립을 (targetx, targety)로 부드럽게 이동시키는 함수
_global.smoothMove = function(mc, speed, targetx, targety){
mc._x += speed*(targetx - mc._x);
mc._y += speed*(targety - mc._y);
};
// 마우스 커서 숨김
Mouse.hide();
// rect 무비클립을 드래그 시킴
_root.rect.startDrag(true);
// nabi 무비클립이 마우스를 따라 부드럽게 움직이게 함
_root.nabi.onEnterFrame = function(){
rotateTo(this, _root._xmouse, _root._ymouse);
smoothMove(this, 0.03, _root._xmouse, _root._ymouse);
};
-------------------------------------------------------------------------------------------
- 함수의 범위와 삭제
_global.myFunc = function(a, b) {
return a + b;
};
function myFunc(a, b) {
return a - b;
};
myValue = myFunc(10, 5);
플래시에서 경로명 없이 함수를 호출하며느 먼저 함수가 호출된 위치에 해당 함수가 선언되어 있는지 확인해 보고, 그 함수가 없다면 _global에서 해당 함수를 찾게 됩니다. 따라서 위 액션스크립트의 경우 myFunc(10, 5)을 호출하면, 먼저 함수가 호출된 myFunc()가 선언되어 있는지 확인하는데, 함수가 선언되어 있으므로 _global에 선언된 myFunc()가 불려지지 않고 그 아래쪽에 있는 myFunc()함수가 호출됩니다. 따라서 myValue에는 10에서 5를 뺀 5라는 값이 저장됩니다.
선언된 함수를 삭제하기 위해서는 delete라는 예약어를 사용하면 됩니다.
delete 함수명;
-------------------------------------------------------------------------------------------
예제문]
_global.myFunc = function(a, b) {
return a + b;
};
function myFunc(a, b) {
return a - b;
}
myValue1 = myFunc(10, 5); // myValue1은 5가 저장
delete myFunc; // function myFunc(a, b)가 삭제
myValue2 = myFunc(10, 5); // myValue2는 15가 저장
delete myFunc; // _global.myFunc = function(a, b) 삭제
myValue3 = myFunc(10, 5); // myValue3는 undefined
[출처] _global을 이용한 전역 함수 만들기|작성자 달구얌