Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.02.2006, 17:27
Mihcom вне форума Посмотреть профиль Отправить личное сообщение для Mihcom Найти все сообщения от Mihcom
  № 1  
Ответить с цитированием
Mihcom

Регистрация: Feb 2006
Сообщений: 9
Attention Циклические ссылки классов

Господа, помогите решить следующую проблему.

есть два класса, лежат каждый в своём файле

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 подобного рода код (с циклическими ссылками)?

Старый 23.02.2006, 20:22
acex вне форума Посмотреть профиль Отправить личное сообщение для acex Найти все сообщения от acex
  № 2  
Ответить с цитированием
acex

Регистрация: Feb 2006
Сообщений: 1
А что такое классы и где Вы их там используете?

Старый 23.02.2006, 20:30
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 3  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
задавал раньше подобный вопрос, но ответа не получил. Пытался экспериментировать - ничего не получается. Но ведь _parent - _child мувиклипа - это ведь тоже пример циклической ссылки, и работает. До сих пор передо мной стоит подобная проблема - приходится изобретать немыслимые конструкции. Перерыл кучу информации - ноль.

Дайте хотя бы ссылку. Только на ресурс, где в качестве примеров АС - в других языках эта конструкция работает.

Старый 23.02.2006, 20:38
flash_super_master вне форума Посмотреть профиль Отправить личное сообщение для flash_super_master Найти все сообщения от flash_super_master
  № 4  
Ответить с цитированием
flash_super_master

Регистрация: Feb 2006
Сообщений: 1
у меня похожий код, и тоже не работает, возможно из-за того что эти буквы уже зарезервированы для других классов. Как ни странно, изменением букв проблему решить не удалось. Перепробовал весь алфавит и ниодна буква не заработала. Сейчас проверяю комбинации из двух букв, но похоже проблема не в именах классов.

C.as:
class C
{
var _b;
}

D.as:
class D
{
var _a:C;
}

Старый 24.02.2006, 21:06
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 5  
Ответить с цитированием
meiciuc

Регистрация: 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.