Цитата:
Сообщение от chingachgoog
А почему экземпляр класса SimpleClass должен показывать, что он экземпляр своего предка (ClassAsParent)? Он и не будет это показывать, пока вы ему насильно не пропишите prototype.__proto__ = ...
А так правильно:
 Код:
trace(this instanceof SimpleClass);
|
a extends в классе зачем, если каждому классу надо будет прописывать родителя руками в рантайме? я уже задумываюсь сделать и запускать вначале проигрывания swf. но это же не выход

Код AS1/AS2:
class Bubn
{
public static function bindClasses()
{
other.package.SimpleClass.prototype.__proto__ = parent.ClassAsParent.prototype
}
}
Цитата:
Сообщение от __etc
Это недостаток instanceof, в силу кривой реализации классов в AS1/AS2.
|
я прошу прощения, я не до конца обьяснил суть проблемы. Тут дело не в том что instanceof работает неправильно, а
дело в том что раньше SimpleClass работал и наследовался от ClassAsParent нормально. Тоесть методы ClassAsParent работали в SimpleClass, но в какой-то момент SimpleClass перестал наследоваться.
Если вы грешите на instanceof. то такой код

Код AS1/AS2:
public function SimpleClass()
{
trace(this instanceof ClassAsParent);
trace(this.__proto__ == ClassAsParent);
}
выдаёт два раза False.
я уже вторые сутки пытаюсь понять что именно привело к такому результату и как это исправить. неужели никто не сталкивался с такой проблемой?
з.ы. компилирую в flash cs4. попробовал mtasc (версии 1.14) - результат такой же.
Добавлено через 6 минут
Цитата:
Сообщение от dimarik
А на каком этапе наследования инстансоф становится якобы не ребенком суперкласса?
|
компилируется без ошибок. при запуске swf у класса не работают методы парента