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

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

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

Регистрация: Feb 2008
Сообщений: 72
По умолчанию Можно ли создавать package с одним именем с классом?

Хочу сделать подобную конструкцию.

com\test.as - главный класс
com\test\subtest1.as - другие классы, которые используются только в главном
com\test\subtest2.as

Пробовал, все компилируется и вроде даже работает. Но вот вопрос, с эстетической точки зрения, можно ли так делать?

можно конечно сделать так

com\testPackege\test.as - главный класс
com\testPackege\subtest1.as
com\tesPackeget\subtest2.as

вот тут я в ступоре... как правильней?

Просто глазу вроде приятнее в коде писать так
Код:
new com.test()
нежели так
Код:
new com.testPackege.test()

Старый 08.04.2008, 13:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
У вас оба варианта не верные. Пакеты существуют не для приятности глаз, а для того, чтобы не возникло конфликов между одноименными классами различных авторов. Имя пакета как правило формируется из имени домена автора или проекта.
Мои классы имеют такой пакет
Код:
ru.inils.имяПроекта.ИмяКласса
ru.inils.имяПроекта.подуровень.ИмяКласса
А пакеты данного форума (если бы они были)
Код:
ru.flasher.имяПроекта.ИмяКласса
ru.flasher.имяПроекта.подуровень.ИмяКласса
Заметьте, класс пишется с Большой буквы, а не с маленькой.

Для того, чтобы не писать постоянно имя пакета, нужно использовать import
Вместо
Код:
new com.testPackage.Test () 
new com.testPackage.Subtest ()
будет
Код:
import new com.testPackage.*
new Test () 
new Subtest ()
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 08.04.2008, 13:51
Smirnov48 вне форума Посмотреть профиль Отправить личное сообщение для Smirnov48 Найти все сообщения от Smirnov48
  № 3  
Ответить с цитированием
Smirnov48

Регистрация: Feb 2008
Сообщений: 72
Спасибо. Я понял: домен + обдуманная организация имен классов/пакетов - вот где счастье

PS. Простите, что в вел в заблуждение. Вот такая писанина даже не компилируется -
Цитата:
com\test.as - главный класс
com\test\subtest1.as - другие классы, которые используются только в главном
com\test\subtest2.as

Старый 08.04.2008, 14:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А как вы ее компилируете?

Старый 08.04.2008, 15:18
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 5  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
С вашей структурой должно компилироваться так:
Код:
import com.test;
import com.test.*;
new test();
new subtest();
new subtest2();

Старый 08.04.2008, 16:44
Smirnov48 вне форума Посмотреть профиль Отправить личное сообщение для Smirnov48 Найти все сообщения от Smirnov48
  № 6  
Ответить с цитированием
Smirnov48

Регистрация: Feb 2008
Сообщений: 72
Если я делаю имя пакета, и имя класса разные, например com.test и com.Test - тогда все ок. Если одинаковые то, такая конструкция не помогает
Код:
import com.test;
import com.test.*;
все равно пишет
Цитата:
Имя класса "com.test.subtest" конфликтует с именем другого загруженного класса "com.test".
Кстати, заметил одну интересную ситуацию. Если я переправлю нормальную normal.rar версию, на плохую error.rar. не открывая subtest-ы. Тогда все компилируется. А стоит открыть поставить пробел, и сохранить, тогда все. Ошибка. Видимо кеш какой-то. Уже пару раз на этом об это спотыкался.

Старый 08.04.2008, 16:55
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Еще раз повторяю
Цитата:
Заметьте, класс пишется с Большой буквы, а не с маленькой.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 08.04.2008, 17:00
Smirnov48 вне форума Посмотреть профиль Отправить личное сообщение для Smirnov48 Найти все сообщения от Smirnov48
  № 8  
Ответить с цитированием
Smirnov48

Регистрация: Feb 2008
Сообщений: 72
просто, чтобы прояснить ситуацию.
Класс
Код:
com.Test
но если пакет
Код:
com.test.*
Прошу прошения, постараюсь впредь не ошибаться.

А что вы можете сказать по поводу кеша самого редактора/компилятора?


Последний раз редактировалось Smirnov48; 08.04.2008 в 17:03.
Старый 08.04.2008, 17:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Начиная с 7-го флеша переменные регистрозависимы.
Поэтому класс com.Test и пакет com.test.* не пересекутся.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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