Как и в ActionScript 2 в ActionScript 3 есть возможность создавать динамические классы, для этого используется ключевое слово dynamic (
dynamic keyword). В динамические классы можно добавлять новые свойства в процессе выполнения кода.
В AS2, когда создаете новый класс, наследованный от динамического класса, он по умолчанию так же становился динамическим.
Код:
// superclass.as
dynamic class superclass {
}
// subclass.as
class subclass extends superclass {
}
// main movie
var instance:subclass = new subclass();
trace(instance.anything); // Ошибки не будет, т.к. subclass унаследовал динамичность
В AS3 это не так, любой класс не является динамическим, если это явно не указано ключевым словом
dynamic.
Код:
// superclass.as
package {
dynamic class superclass {
}
}
// subclass.as
package {
class subclass extends superclass {
}
}
// main movie
var instance:subclass = new subclass();
trace(instance.anything); // Ошибка, свойство не определено, т.к. класс не динамический