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

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

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

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
import:
1) делает доступным использование имени класса вместо полного пути
2) указывает компилятору как найти классы
3) код становится проще поддерживать, потому что классы не включенные в import, не попадут в результирующий swf файл.

Цитата:
Сообщение от sospamom Посмотреть сообщение
Яски
Компилятор может подключить необходимые классы и без инструкции import. Я же ему указываю:
Код AS3:
new paket1.Class1();
Компилятором флекса пользуются огромное кол-во людей по всему миру. Вы предлагаете всем писать полные пути до класса?

Цитата:
Сообщение от ldimat Посмотреть сообщение
не ждал бы никто ничего минутами, можно было бы адресовать пути по которым ищутся исходники, и один раз запомнить все расположения. под флексом этим бы занялся fcsh, под flash ide - она сама.
Хорошо, а как вы собираетесь отслеживать появление новых файлов, удаление файлов? Что делать в ситуации когда есть две папки a и b, в каждой из которых есть класс Text и мы используем этот класс? С использованием импорта такой проблемы бы не было.
Если Вам не нравится import, напишите что предлагаете Вы.
__________________
TankiOnline
Я разработчик Alternativa3D


Последний раз редактировалось Яски; 20.07.2009 в 09:39.
Старый 20.07.2009, 10:04
sospamom вне форума Посмотреть профиль Отправить личное сообщение для sospamom Найти все сообщения от sospamom
  № 32  
Ответить с цитированием
sospamom

Регистрация: Jun 2008
Сообщений: 126
kup
Насчет as вы правы. Насчет this - нет, потому что в замыкании функции она будет указывать на глобальный объект и как вы обратитесь к переменной экземпляра? Но это всё мы уходим в сторону и разводим философию. Давайте разберемся с import.

wvxvw
Цитата:
импорт говорит о том, что вы используете пакет, а не свойство
Я знаю, что new paket1.Class1(); может обозначать например локальную переменную со свойством Class1 типа Class. Но дело в том, что import никак не поможет разобраться компилятору что именно я хочу создать, потому что инструкция import обязательная.

Яски
1) Объясните тогда почему инструкция use namespace необязательная?
2) Нет, я и так указываю полный путь new paket1.Class1();
3) И без импорта можно реализовать я ведь указываю new paket1.Class1();
Цитата:
Что делать в ситуации когда есть две папки a и b, в каждой из которых есть класс Text и мы используем этот класс?
new a.Text();
new b.Text();

Кажется ldimat понял, что я хочу узнать.

Старый 20.07.2009, 12:10
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 33  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
sospamom, в некоторых случаях и use namespace обязателен.
Яски, наличие import'a никак не влияет на
Цитата:
Сообщение от Яски
3) код становится проще поддерживать, потому что классы не включенные в import, не попадут в результирующий swf файл.

Старый 20.07.2009, 12:22
sospamom вне форума Посмотреть профиль Отправить личное сообщение для sospamom Найти все сообщения от sospamom
  № 34  
Ответить с цитированием
sospamom

Регистрация: Jun 2008
Сообщений: 126
BlooDHounD
Давайте не будем сейчас усложнять и рассматривать случаи обязательного использования use namespace, потому что эти случаи не прольют свет на import.

Я просто использовал use namespace для сравнения(аналога), чтобы участники обсуждения поняли, что я хочу сказать.

Старый 20.07.2009, 13:05
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 35  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
sospamom, вам уже 2 человека написали зачем однозначно нужен импорт. так как Вы не хотите осознавать написанное, и не видите схожести в примерах, то думаю дальнейшая тавтология бессмысленна, и топик можно закрывать.

Старый 20.07.2009, 13:40
ldimat вне форума Посмотреть профиль Отправить личное сообщение для ldimat Найти все сообщения от ldimat
  № 36  
Ответить с цитированием
ldimat
[+1.3 20.07.09]

Регистрация: Jun 2009
Сообщений: 29
Записей в блоге: 1
я не понял зачем импорт, напишите примеры еще раз пожалуйста

Старый 20.07.2009, 13:48
sospamom вне форума Посмотреть профиль Отправить личное сообщение для sospamom Найти все сообщения от sospamom
  № 37  
Ответить с цитированием
sospamom

Регистрация: Jun 2008
Сообщений: 126
BlooDHounD
Напишите зачем нужно обязательное использование import, чтобы я понял, что вы имеете ввиду.

Старый 20.07.2009, 13:54
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 38  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
Яски, наличие import'a никак не влияет на
Согласен, я это понял позже.

sospamom, всегда писать полные пути до класса это идиотизм, создатели языка не сделали этого потому что не дураки и понимают что это повлечет за собой.
__________________
TankiOnline
Я разработчик Alternativa3D

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от ldimat Посмотреть сообщение
ackage {
import flash.display.Sprite;

public class T extends Sprite {
function T() {
var Sprite:Sprite = new Sprite;
}
}
}

^^^^ такой код тоже чудесно компилится и ни у кого не возникает вопрос что я дальше буду использовать в катчестве Sprite, мне там поможет только new flash.display.Sprite(), и если я еще сделаю объект flash со свойством display у котого будет свойство Sprite, то до конструктора спрайта я вообще не представляю как можно достучатся

поэтому опять вопрос: зачем нужна импорт если она ничего не делает?
З.Ы. кеширование даже 1000 файлов ты особо не заметишь
Нет, такой код не будет замечательно компилироваться... может во Флеше... Флекс говорит об ambigous reference... Точно то же самое будет, если вы будете создавать переменные / неймспейсы с именами импортированых пакетов.

Понимаете, например в Яве или С# не нужно ключевое слово var / function потому что любая декларация интерпретируется одинаково - но это не так в ES языках, вы не можете обойтись без var т.как создадите неоднозначность - не понятно будет, используете ли вы переменную, неймспейс или метод. Точно так же и с импортом, если вы его не используете - вас нельзя будет однозначно понять. И как бы это вам сказать... судя по вашим увереным заявлениям о скорости компиляции и что сколько времени займет - вы просто много теоретизируете... но вряд ли сталкивались с этим на практике... Понимаете, в среднем-большом проекте, как правило, подключено 3-5 библиотек, библиотеки могут быть совсем не маленькими, ну и соответственно, они лежат в зип архиве - разархивировать несколько таких библиотек только для того, чтобы поискать там необъявленую переменную (и это, предположим, после того, как пол проэкта уже скомпилировалось) - поверьте, вам очень быстро перехочется...
Ей богу, исходники у вас есть - перепишите и попробуйте, всегда есть возможность, что вы правы, а все остальные ошибаются.

Ну или еще такой вариант, дизайнер экспортировал какой то символ как класс mc1, а вы у себя в функции объявили локальную переменную cm1, и когда ее использовали - случайно опечатались. Далее, следуя вашей логике, код скомпилировался без ошибок, потому что все, что вы делали с этой переменной было что-нибудь в духе: if (mc1) {...} - код перестал работать, но причину вам не говорит.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 20.07.2009 в 14:13.
Старый 20.07.2009, 14:19
ldimat вне форума Посмотреть профиль Отправить личное сообщение для ldimat Найти все сообщения от ldimat
  № 40  
Ответить с цитированием
ldimat
[+1.3 20.07.09]

Регистрация: Jun 2009
Сообщений: 29
Записей в блоге: 1
переписывать ничего не нужно, напиши import package.* и все заработает
я компилил тот код чертвертым флексом и все работало

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

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

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


 


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


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