![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2006
Сообщений: 9
|
Господа, помогите решить следующую проблему.
есть два класса, лежат каждый в своём файле A.as: class A { var _b:B; } B.as: class B { var _a:A; } При компиляции класса А получаю следующее: **Error** D:\Temp\FlashTest\A.as: Line 2: The name of this class, 'A', conflicts with the name of another class that was loaded, 'A'. При компиляции класса B получаю то же: **Error** D:\Temp\FlashTest\B.as: Line 2: The name of this class, 'B', conflicts with the name of another class that was loaded, 'B'. Использую Flash MX Professional 2004 (7.0.1) Classpath: $(LocalData)/Classes . Возможно ли использовать во Flash подобного рода код (с циклическими ссылками)? |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 1
|
А что такое классы и где Вы их там используете?
![]() |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
задавал раньше подобный вопрос, но ответа не получил. Пытался экспериментировать - ничего не получается. Но ведь _parent - _child мувиклипа - это ведь тоже пример циклической ссылки, и работает. До сих пор передо мной стоит подобная проблема - приходится изобретать немыслимые конструкции. Перерыл кучу информации - ноль.
Дайте хотя бы ссылку. Только на ресурс, где в качестве примеров АС - в других языках эта конструкция работает. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 1
|
у меня похожий код, и тоже не работает, возможно из-за того что эти буквы уже зарезервированы для других классов. Как ни странно, изменением букв проблему решить не удалось. Перепробовал весь алфавит и ниодна буква не заработала. Сейчас проверяю комбинации из двух букв, но похоже проблема не в именах классов.
C.as: class C { var _b ;} D.as: class D { var _a:C; } |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
проблема в глюках самого флеша. Если нижележащий код попробовать проверить на ошибки из АС-файлов, компилятор выдаст ошибку. Если же его просто откомпилить из фла-файла - все прекрасно работает. Это первое. Второе, если объекты классов а:А и ь:Ь объявить как Object, то ошибок никаких выдавать не будет. И код будет работать. Хотя с точки зрения ООП это не правильно - объявлены не те типы данных. Может в АС3 будет работать, как положено.
АС2 конечно покруче в разы, чем АС1, но ему еще расти и расти. class A
{
public var a:String = "AAAAAAA";
public var b:B;
public function A()
{
b = new B();
b.a = this;
b.tracer();
}
public function tracer():Void
{
trace("A");
}
}
class B
{
public var b:String = "BBBBBB";
public var a:A;
public function B(){}
public function tracer():Void
{
trace("B.a.a "+a.a);
a.tracer();
}
}
var a:A = new A();
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|