Цитата:
Сообщение от 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) {...} - код перестал работать, но причину вам не говорит.