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

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

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

Регистрация: Aug 2008
Сообщений: 4
Отправить сообщение для DenKoren с помощью ICQ Отправить сообщение для DenKoren с помощью Skype™
Post Создание экземпляров классов: работа с пакетами

Есть описание класса:

Код:
package FlashModels3D.Objects3D{
	import FlashModels3D.Vertex3D;
	class Cube3D extends Vertex3D {

	...

	}
}
И есть главный класс:

Код:
package Classes{
	...
	import FlashModels3D.ObjectsArea3D;
	import FlashModels3D.Objects3D.Cube3D;
	...

	public class MainClass extends Sprite {
		public var workArea:ObjectsArea3D;
		public function MainClass() {
			workArea = new ObjectsArea3D("WA",60,60);
			addChild(workArea);
			var p:Cube3D;
		}
	}
}
В нем без проблем создается экземпляр класса ObjectsArea3D. При попытке создания экземпляра класса Cube3D выдает ошибку в описании класса Cube3D:
1017: The definition of base class Vertex3D was not found.

При убирании в описании класса Cube3D package:
Код:
import FlashModels3D.Vertex3D;
class FlashModels3D.Objects3D.Cube3D extends Vertex3D {

	...

}
Вылезает другая ошибка, относящаяся уже к строке var p:Cube3D класса MainClass:
1046: Type was not found or was not a compile-time constant: Cube3D.
Замена строки
Код:
var p:Cube3D;
на
Код:
var p:FlashModels3D.Objects3D.Cube3D;
пользы не принесла.
Судя по тому, что объект класса ObjectsArea3D создается успешно - пути classpath в настройках Flash указаны верно.

Если такие проблемы уже обсуждались на форуме - киньте прямой линк. Тучу времени угробил на поиск - не нашел.
Заранее благодарен за помощь.
__________________
Юзверь

Старый 17.08.2008, 21:43
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. имена пакетов - все строчные буквы (маленькие).
2. в объявлении класса нужно использовать только локальное имя т.е.:
Код:
package mypackage.mysubpackage.mysubsubpackage
{
public class MyClass
{

}
3. в extends можно писать как полное так и локальное имя класса, писать полное имя нужно только в том случае, если у вас есть 2+ пакетов с классами с одинаковыми названиями (но лучше исправить названия классов, если это возможно).
4. аналогично с объявлениями переменных, использовать полное имя класса нужно только если могут возникнуть конфликты имен. Пример:
Код:
import flash.display.Sprite;
import my.graphicpackage.Sprite;
var mySprite:my.graphicpackage.Sprite = new my.graphicpackage.Sprite();
var flashSprite:flash.display.Sprite = new flash.display.Sprite();
Но, опять же, такие ситуации желательно избегать.
5. любые классы которые вы используете в другом классе надо импортировать, даже не смотря на то, что, технически, классы лежащие в одной директории импортировать не обязательно, вы просто потом умаетесь искать какого же не хватает, если где-то будет ошибка в названии.
__________________
Hell is the possibility of sanity

Старый 31.08.2008, 17:52
DenKoren вне форума Посмотреть профиль Отправить личное сообщение для DenKoren Найти все сообщения от DenKoren
  № 3  
Ответить с цитированием
DenKoren

Регистрация: Aug 2008
Сообщений: 4
Отправить сообщение для DenKoren с помощью ICQ Отправить сообщение для DenKoren с помощью Skype™
Помогло описание класса Vertex3D как publiс. Остальное действия не имело. Спасибо за помощь.
__________________
Юзверь

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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