Показать сообщение отдельно
Старый 10.02.2009, 20:33
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 1  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
По умолчанию (сложный) Потеря наследования - моя вина или компилятора?

проект большой и классов много. но случилась непонятная проблема.
допустим класс

Код AS1/AS2:
import core.Library;
import some.package.Class;
import parent.ClassAsParent;
 
dynamic class other.package.SimpleClass extends ClassAsParent
{
 
  public function SimpleClass()
  {
    trace(this instanceof ClassAsParent);
  }
 
}
пишет "false"

я уже всё перебробовал:
- менял очередности импортов.
- называл классы так что бы имя отцовского класса было первым по алфавиту например: "FIRST_ClassAsParent" и "SECOND_SimpleClass"
- называл классы так чтобы имя отцовского классы было последним например: "SECOND_ClassAsParent" и "FIRST_SimpleClass"
- писал полный путь до отцовского класса "dynamic class other.package.SimpleClass extends parent.ClassAsParent"

единственно что помогает это
other.package.SimpleClass.prototype.__proto__ = parent.ClassAsParent.prototype;

но это не решение и я уверен на 200% что дело в чем-то другом и лучше решить проблему чем затыкать дыры.