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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.07.2009, 17:40
ldimat вне форума Посмотреть профиль Отправить личное сообщение для ldimat Найти все сообщения от ldimat
  № 51  
Ответить с цитированием
ldimat
[+1.3 20.07.09]

Регистрация: Jun 2009
Сообщений: 29
Записей в блоге: 1
опять же, я бы ее юзал только и исключительно для объявления зависимостей, а за нью пакет.подпакет.класс() отрывал бы конечности - это все равно что не писать код елочкой

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

Регистрация: Jan 2009
Сообщений: 1,651
Хотите знать правду - напишите письмо разработчику. А иначе вы - троль и место этой теме во флейме.

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

Регистрация: Jun 2008
Сообщений: 126
iflamberg
1) Правду могут знать не только разработчики.
2) Разработчики тоже могут обмануть.
3) Я хочу услышать если не правду, то более-менее правдоподобное объяснение, а не те, что предъявлялись.

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

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Зачем вам правда? Не мудите, напишите уже свой компилятор флеша — в байткоде нет импортов.
__________________
TankiOnline
Я разработчик Alternativa3D

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

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

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

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

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

Регистрация: Jun 2008
Сообщений: 126
Ниже описана причина по которой компилятор хочет, чтобы программист обязательно использовал инструкцию import, даже если указывается полный путь к классу наподобие
Код AS3:
new paket1.Class1();
Причина:
Так как в следующем коде нет строчки:
Код AS3:
import a.Class1;
то компилятор не ищет класс Class1 из пакета a в файловой системе. Компилятор считает a локальной переменной, а Class1 - её свойством.

Таким образом ускоряется компиляция, ведь компилятор не обращается к файловой системе когда не надо.

Код AS3:
package 
{
	public class Main
	{
		public function Main()
		{
			var a = new A();
			var b = new a.Class1();	
		}
	}
}
 
class A
{
	var Class1:Class;
}


P.S.
Были указаны и другие предположения о необходимости обязательного использования инструкции import, даже когда указывается полный путь к классу наподобие:
Код AS3:
new paket1.Class1();
Но эти предположения неверны.

Предположение 1:
import указывают, чтобы не указывать полный путь к классу.

Почему предположение ошибочно:
Это не объясняет обязательность использования инструкции import


Предположение 2:
import указывают, чтобы показать зависимости кода в данном классе, от классов в других пакетах.

Почему предположение ошибочно:
Если бы это была действительная причина, то разработчики компилятора вместо этого использовали бы следующий приём.

В компиляторе добавили бы новый параметр, например:
mxmlc.exe -addImports

И компилятор в результате компиляции добавлял бы в исходные файлы комментарии по типу:
Код AS3:
package 
{
	/*
	Этот код зависит от:
	paket1.Class1
	paket1.paket2.Class1
	*/
	public class  SomeClass
	{
 
	}
 
}

Данные вариант лучше, чем использование инструкции import по двум причинам:
1) Это комментарии, а не инструкции языка
2) Никто не сможет написать import *; а значит мы лучше будем видеть зависимости.

То есть использование инструкции import наоборот ухудшает видимость зависимостей в коде.



Предположение 3:
Инструкция import используется, чтобы при наличии одноименных классов в разных папках узнать какой именно мы класс создаём.

Почему предположение ошибочно:
Инструкция import здесь не нужна, ведь мы указываем полный путь. Например:
Код AS3:
new paket1.Class1();
new paket2.Class1();

Предположение 4:
Если мы имеем следующий код, то import поможет нам разобраться что именно создавать компилятору, экземпляр класса Class1 который лежит в пакете a или экземпляр класса Class1, который является свойством переменной a.

Код AS3:
package 
{
	import a.Class1;
	import b.Class1;
 
	public class Main
	{
		public function Main()
		{
			var a = new A();
			var b = new a.Class1();	
		}
	}
}
 
class A
{
	var Class1:Class;
}
Почему предположение ошибочно:
В данном случае нам приходится писать полный путь так как импортируются два одноименных класса:
import a.Class1;
import b.Class1;

Инструкция import не помогает разрешить противоречие между классом Class1 в пакете a и классом Class1, который является свойством локальной переменной a.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Предположение 2:
import указывают, чтобы показать зависимости кода в данном классе, от классов в других пакетах.

Почему предположение ошибочно:
Если бы это была действительная причина, то разработчики компилятора вместо этого использовали бы следующий приём.

В компиляторе добавили бы новый параметр, например:
mxmlc.exe -addImports
Ну да, а как же... а пакетов без имени как будто не существует?
Да-да, вот мне как раз не хватает вписывать в каждом проекте сотни классов в билд-файл (такая фишка есть у COMPC - ну очень занимательный процесс), а потом при переносе этого проекта на другую машину, с другим расположением класс-путей процедуру повторить.
Убрав импорт, вы тем самым предлагаете разработчикам вместе с програмистами ходить домой не через дверь, а через окно, при этом не задумываясь, что не все живут в одноэтажных котеджах...

кроме всего прочего, подумайте еще и о том, что импорт не всегда указывает на реально существующий ресурс, в случае с RSL это будет исключительно виртуальная ссылка на класс, которого может вообще не существовать.
Вы просто видите со своей позиции, которая не похожа на обычные условия, в которых люди что-то разрабатывают - для вас, возможно, и нет смысла в этой директиве, как возможно и в каких-нибудь других элементах языка, которые вам попросту неизвестны.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 20.07.2009 в 23:10.
Старый 21.07.2009, 01:19
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 59  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Код AS3:
а затем идет по импортам, подключая все необходимые классы. В этом есть свои плюсы — подключаются только те классы, что действительно используются.
А вот кстати, если я импортирую что-то, что реально не использую, оно все равно будет вшито в конечный SWF-файл?
__________________
Дело не в тебе

Старый 21.07.2009, 02:28
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 60  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
если импортируешь то помоему нет, а вот если ты где то хотя бы обьявишь переменную с данным типом, то будет.

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

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

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


 


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


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