Simple.Вы объявили
var globalThis:MovieClip;
Обратите внимание, что вы УКАЗАН тип MovieClip
для globalThis
С другой стороны, вы объявили localThis
как так называемый вариантный тип.
Это означает, что это свободно типизированная переменная, тогда как globalThis
- строго типизированная переменная.Компилятор не проверяет, является ли метод process
членом свободно типизированного экземпляра, но делает это для globalThis
.
Теперь вы увидите, что globalThis
на самом деле MovieClip
, чтоне имеет определения для process
.Обратите внимание, что вы определили это в вашем MyClass
классе.Измените var globalThis:MovieClip;
на var globalThis:MyClass;
, и он будет работать, потому что компилятор увидит определение для process()
в MyClass
ИЛИ, вы можете просто вызвать метод process
как MyClass(globalThis).process();
,Это своего рода приводит globalThis
к типу MyClass
, так что компилятор не видит в этом ничего плохого.
Теперь вы видите, что это вообще не было вопросом области видимости !!