Правильно ли я понимаю, что вы хотите создать экземпляр пустого фрагмента ролика с прикрепленным поведением класса и без необходимости определять пустой символ клипа в библиотеке?
Если это так, вам нужно использовать трюк с пакетами. Это мой базовый класс (называется View), который я использовал на протяжении многих лет и в сотнях проектов:
import mx.events.EventDispatcher;
class com.tequila.common.View extends MovieClip
{
private static var _symbolClass : Function = View;
private static var _symbolPackage : String = "__Packages.com.tequila.common.View";
public var dispatchEvent : Function;
public var addEventListener : Function;
public var removeEventListener : Function;
private function View()
{
super();
EventDispatcher.initialize( this );
onEnterFrame = __$_init;
}
private function onInitialize() : Void
{
// called on the first frame. Event dispatchers are
// ready and initialized at this point.
}
private function __$_init() : Void
{
delete onEnterFrame;
onInitialize();
}
private static function createInstance(symbolClass, parent : View, instance : String, depth : Number, init : Object) : MovieClip
{
if( symbolClass._symbolPackage.indexOf("__Packages") >= 0 )
{
Object.registerClass(symbolClass._symbolPackage, symbolClass);
}
if( depth == undefined )
{
depth = parent.getNextHighestDepth();
}
if( instance == undefined )
{
instance = "__$_" + depth;
}
return( parent.attachMovie(symbolClass._symbolPackage, instance, depth, init) );
}
public static function create(parent : View, instance : String, depth : Number, init : Object) : View
{
return( View( createInstance(_symbolClass, parent, instance, depth, init) ) );
}
}
Итак, все, что вам нужно сделать, чтобы использовать этот класс, это сделать его подклассом:
class Foo extends View
{
private static var _symbolClass : Function = Foo;
private static var _symbolPackage : String = "__Packages.Foo";
private function Foo()
{
// constructor private
}
private function onInitialize() : Void
{
// implement this to add listeners etc.
}
public static function create(parent : View, instance : String, depth : Number, init : Object) : Foo
{
return( Foo( createInstance(_symbolClass, parent, instance, depth, init) ) );
}
}
Теперь вы можете создать экземпляр Foo следующим образом:
var foo : Foo = Foo.create( this );
Предполагая, что 'this' - это какой-то тип MovieClip или View.
Если вам нужно использовать это с символом библиотеки, просто не указывайте префикс __Packages в элементе _symbolPackage.
Надеюсь, это поможет ...