Что вам нужно сделать, это создать внешний файл ActionScript для хранения определения класса. Создайте файл, назовите его Ball.as и заполните его
package {
import flash.display.*;
import flash.events.*;
public class Ball extends MovieClip {
public var vx:Number = 0;
public var vy:Number = 0;
// add more variables here
public function Ball() {
}
// add more functions here.
}
}
В этом классе вы можете поместить все нужные функции и переменные и получить к ним доступ из кода временной шкалы. Поместите это в ту же папку, что и ваш .fla, и экспортируйте свой MovieClip шара как Ball, расширяя flash.display.MovieClip. Flash найдет определение для класса и использует его вместо сгенерированного.
Примечание:
- если / когда вы добавляете больше функций или переменных, не забудьте добавить модификаторы доступа. (публичный, частный, охраняемый)
- Если вы измените папку по отношению к .fla, вам также потребуется изменить пакет, поэтому, если вы создали папку com / mygame для всего исходного кода для вашей игры, вы изменили бы первую строку "упаковать com.mygame {" и экспортировать мувиклип как "com.mygame.Ball".
- Возможно, вам придется изменить класс на динамический класс, добавив ключевое слово «dynamic» между public и class. Это означает, что вы можете добавлять свойства к классу во время выполнения, но за снижение скорости.
Я не понимаю, что вы подразумеваете под "добавлением невидимых свойств". Функция addChild () должна работать со всем, что подклассы DisplayObjectContainer (особенно Sprite и MovieClip), и должна работать со всем, что подклассы DisplayObject (включая Sprites, MovieClips, Bitmaps, TextFields и Shapes)