Я изучаю ActionScript 2.0, анализируя некоторый свободно доступный исходный код и изменяя его, и я наткнулся на небольшую заминку.
У меня есть 3 файла .as, которые идут с моим .fla, и это:
"script.as" содержит все основные функции, которые используются во встроенном флэш-интерфейсе.
"skin.as" содержит объявление класса оболочки интерфейса и функции класса.
"defaultskin.as" содержит объявление класса и функции, расширяющие "скин" класса.
Первый кадр .fla просто #includes "script.as", и я связал фрагмент ролика "interface" (который является моим основным интерфейсом Flash) с классом "defaultskin" с помощью меню правой кнопки мыши / свойств в связке ActionScript.
У меня есть переменная, объявленная в "script.as" с помощью простого оператора var. Может ли эта переменная быть прочитана в одной из функций внутри "skin.as" одной из функций класса как есть? Или мне нужно сделать что-то особенное, чтобы он был доступен для чтения этому классу?
Как это можно сделать, не делая переменную общедоступной статической и не передавая ее в качестве аргумента функции?
Для дополнительного пояснения, script.as выглядит примерно так (предположим, что m_interface - это имя объекта мувиклипа):
//imports
var myVar;
onLoad()
{
m_interface.Initialize();
}
skin.as выглядит примерно так:
//imports
class skin
{
//variable declarations
public function skin()
{
// code
}
function Initialize()
{
trace(myVar);
}
}
без написания всего лишнего кода defaultskin.as объявляет класс как таковой:
class defaultskin extends skin