Показать сообщение отдельно
Старый 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.