В настоящее время я поддерживаю некоторый гибкий код и заметил очень много функций, которые объявлены как:
private function exampleFunc():void {
....
}
Эти функции находятся в глобальный масштаб и не являются частью какого-либо конкретного класса, поэтому мне немного неясно, какой эффект будет иметь объявление их как закрытых. Какие ограничения есть у квалификатора private для таких функций?





Что вы имеете в виду под глобальным охватом? Объявлены ли эти функции в основном файле MXML?
В общем, частный означает, что функции могут вызываться только из класса, который их объявляет.
Функции ActionScript, включенные в ваш код mxmlc, будут доступны как часть вашего компонента mxmlc, который за кулисами компилируется в класс. Поэтому пометка их как закрытых делает их недоступными.
Вот пример, чтобы прояснить это, скажем, у вас есть следующий компонент, мы назовем его FooBox:
<!-- FooBox.mxml -->
<mx:Box xmlns:mx = "http://www.macromedia.com/2003/mxml">
<mx:Script><![CDATA[
private function foo():void {
lbl.text = "foo";
}
public function bar():void {
lbl.text = "bar";
}
]]></mx:Sctipt>
<mx:Label id = "lbl">
</mx:Box>
Теперь я могу добавить FooBox в свое приложение и использовать его функции:
<mx:Application
xmlns:mx = "http://www.macromedia.com/2003/mxml"
xmlns:cc = "controls.*"
>
<mx:Script><![CDATA[
private function init():void {
fbox.foo(); // opps, this function is unaccessible.
fbox.bar(); // this is ok...
}
]]></mx:Sctipt>
<cc:FooBox id = "fbox" />
</mx:Application>
Если функции ActionScript включены в ваш основной файл приложения, то вы можете вызывать функции из дочернего элемента управления через объект Application.application, например:
Application.application.bar();
если функция bar была помещена в основной код mxmlc.
Но когда вы помещаете его в файл ActionScript, он все еще скомпилирован в класс?
Потому что асдоку это не нравится.