![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
Здравствуйте!
В библиотеке есть символ с именем "_hello", он определен как наследник класса My_class. Итак код фильма код класса Вопрос: как передать в конструктор параметр "_param"? |
|
|||||
|
Modus ponens
|
Поскольку вы никогда явно конструктор MovieClip'a не вызываете, то передать в него аргументы вы тоже не сможете. Выходом может быть класс-фабрика, который будет это делать примерно так:
[не рабочий код] При условии, что в конструкторе вы ничего не передаете, а argument соответствует какому-нибудь полю в классе TheClass.
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
В конструктор — никак. Но у attachMovie есть четвертый аргумент.
|
|
|||||
|
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
var myClass:MyClass = this.attachMovie("myClass", "myClass", this.getNextHighestDepth(), { myVar: "asdf" });
|
|
|||||
|
Modus ponens
|
class ClipFactory
{
public static function createClassObject(parent:MovieClip,
linkage:String,
classAlias:Function,
initArguments:Object):MovieClip
{
var b:Boolean = Object.registerClass(linkage, classAlias);
var clip:MovieClip = parent.attachMovie(linkage, linkage,
parent.getNextHighestDepth(),
initArguments);
trace("called "+b);
return clip;
}
}
class Foo extends MovieClip
{
public var test:String;
public function Foo(){ trace("foo constructor: " + test); };
public function traceTest():Void
{
trace(test);
}
public function toString():String { return "Foo"; };
}
import ClipFactory;
import Foo;
var foo:Foo = Foo(ClipFactory.createClassObject(this, "aaa", Foo, {test:"abcd"}));
trace(foo.toString())
foo.traceTest();
переменная была определена до выполнения конструктора, фактически то же самое, что и определить ее во время выполнения конструктора =)
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 04.09.2008 в 01:51. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
Всем большое спасибо!
Выбрал вариант Mnilionic.
__________________
kto™ |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|