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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 17.07.2003, 21:03
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 1  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
По умолчанию НЕМНОГО О СЕДЬМОМ Flash (статья)

НЕМНОГО О СЕДЬМОМ FLASH

Хочу в одной статье зафиксировать мысли, которые возникли у меня при изучении неких материалов о седьмом Flash.

СРЕДА РАЗРАБОТКИ

С выходом семерки мы будем иметь два редактора Flash: для дизайнеров и для разработчиков.
В редакторе для дизайнеров, можно заниматься только графикой. Дизайнеру не нужно писать код, и он может пользоваться только готовыми решениями, которые будут храниться в специальном меню: «behaviors» (по принципу DreamWeaver)
Редактор для разработчиков(developers), создан уже для других задач и для других товарищей . Он будет включать в себя все возможности «дизайнерской» редакции, но будет основан на «традициях» и наработках сообщества программистов.
Работа с кодом, с компонентами, с библиотекой будет реализована уже на другом уровне. Будут созданы специальные функции для управления проектом и командой разработчиков.
Пока не понятно, каким по счету будет заявленный недавно редактор Royale. Выскажу предположение. Судя по крупицам информации, которая доступна на данный момент, Royale будет еще одним шагом от «визуальной» и «дизайнерской» среды разработки в сторону общепринятых стандартов в профессиональных средах разработки приложений. То есть мы в будущем, возможно, будем иметь три варианта Flash редактора.

РАСШИРЯЕМАЯ СРЕДА РАЗРАБОТКИ

Выполняя пожелания разработчиков значительно упростится работа с рутинными операциями. Запись и воспроизведение макросов, создание собственных инструментов и меню. Создание специальных приложений для упрощение командной работы.
Разработчики смогут как обмениваться своими наработками, так и продавать их.
Для этого разработан специальный язык на основе JavaScript, из которого можно вызвать любую команду Flash редактора, и работать с каждым его объектом.
И если вас что-то не устраивает в вашем Flash-редакторе – перепишите это!

РАБОТА С ПРОЕКТАМИ

С некоторого времени стало очевидным, что разработка во Flash значительно упрощается и упорядочивается, если использовать компоненты. Опыт разработки показывает, что идеология разработки на основе компонентов постепенно превращается в главную и основополагающую стратегию разработки Flash-приложений (Component based strategy). Где каждый элемент приложения – компонент и само приложение – это компонент.
Личное мнение: идеология компонентов очень успешно может быть использована и в графическом дизайне (Component based design).
Очевидно, что в седьмой версии работа с компонентами значительно более развита.
В МХ компонент – это элемент библиотеки. В «семерке» компонент – это внешний, уже скомпилированный файл. Это как значительно убыстряет тестирование и компиляцию всего проекта, так и позволяет разработчиками «скрывать» реализацию своих компонентов. Выскажу предположение, что для новых компонентов будет использован подход из Java.
Не совсем понятно, как будут помещаться компоненты в конечный файл (или у разработчика будет выбор?). Либо код из компонента будет перенесен в конечный SWF? Или же компонент будет находиться «внешне» и будет «становится частью приложения» уже при его инициализации?
Очевидно, что разрабатывать «начинку» для компонентов будут программисты. Как следствие, значительно упрощена работа с компонентами для программистов. Работа с ними станет менее «визуальна», и настраивать параметры компонентов можно будет прямо в коде. Код хранится во внешних файлах, код для работы компонента легко может быть импортирован из другого компонента.

РЕВОЛЮЦИИ В СИНТАКСИСЕ AS

Что называется «допросились». И Макромедия дала нам то, что многие ее просили. «Хотели ООП – получите Java Style OOP». Вот примерно такие чувства вызывает у меня изучение новых возможностей ActionScript.
Пройдемся по главным нововведениям в синтаксисе.
Работа с классами как в Java
Пример, в котором используется синтаксис МХ и Семерки для создания класса:
Код:
//*************************************************************************
// шестерка

function ClassName()
{
	// код инициализации
}

ClassName.prototype = new MovieClip();

ClassName.prototype.counter = 12;

ClassName.prototype.method = function()
{
	// код метода
}

//*************************************************************************
// семерка

class ClassName extends MovieClip
{
	var counter = 12;
	
	function ClassName()
	{
		// код инициализации
	}
	
	function method()
	{
		// код метода
	}
}
Как видно из примера в «семерке», работа с классами практически повторяет синтаксис Java.
Отличие только в использовании ключевого слова «function» (сделано думаю для обеспечения преемственности)

Доступ к классам

Нововведения при работе с классами не ограничены только появлением новой конструкцией для их создания. Вторая революция в синтаксисе, заключается в управлении доступа к методам и свойствам класса. Используя спецификаторы public, private и static, мы можем легко разрешить и запретить доступ к нашему классу «извне».
Пример:
Код:
class ClassName extends MovieClip
{
	static var counter = 12;
	
	// доступ к методу закрыт "снаружи"
	private function ClassName()
	{
		// код инициализации
	}
	
	// метод доступен "снаружи"
	public function method()
	{
		// код метода
	}
}
Серьезный подход из серьезных языков. Управляя и описывая доступ к классам мы на голову увеличиваем «объектность» наших приложений.

Типы данных

Тот же пример класса, но уже с типами данных:
Код:
//*************************************************************************
// семерка

class ClassName extends MovieClip
{
	static var counter:Number = 12;// указыавем тип Number параметру counter
	
	public function method(s:String)// указыавем типа "строка" аргументу s
	{
		trace(s)
	}
}
Немного огорчает, что для номеров и строк нет более простых типов, например, таких как целые числа и числа с плавающей запятой, но начало положено.
Будем надеяться, что указание данных должно ощутимо сказаться на производительности.

Общие данные для всех экземпляров класса

Почти неизведанные возможности для Flash разработчиков таятся в новом спецификаторе static. Точнее сказать так, подобные возможности можно было реализовать и раньше, но выглядело это так «криво», что почти никто подобным приемом не пользовался.
А все просто и удобно, например мы хотим знать количество всех экземпляра некого класса. И изменяя это поле, новое значение будет доступно всем экземплярам класса.
Два примера реализации одного и того же (в «шестерке» и в «семерке»)
Код:
//*************************************************************************
// 6 style
function className()
{
	// при создании экземпляра увеличить счетчик на единицу
	this.__proto__.counter++;
}


className.prototype.getCounter = function()
{
	return counter;
}
//*************************************************************************
// 7 style

class className
{
	static var counter;
	
	function className()
	{
		// при создании экземпляра увеличить счетчик на единицу
		counter++;
	}
	
	function getCounter()
	{
		return counter;
	}
}
Указывая спецификатор static мы гарантируем, то что каждый экземпляр будет «работать» не со своим полем, а общим полем для всего класса.


Последний раз редактировалось john; 17.07.2003 в 21:07.
Старый 17.07.2003, 21:04
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 2  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Короткая жизнь метода «addProperty»

Просуществовав одну версию Flash, данный метод изжил себя, так как изменилась вся концепция ООП во Flash.
Данный код в полной мере иллюстрирует изменения в «семерке»:
Код:
//*************************************************************************
// 6 style
this.addProperty("testProp", function()
{
	return this.__testProp;

}, function(v)
{
	this.__testProp = v;
});

//*************************************************************************
// 7 style
function get testProp()
{
	return this.__testProp;
}

function set testProp(v)
{
	this.__testProp = v;
}
Очевидно что новый стиль значительно упрощает работу со свойствами.

Интерфейсы

Концепция ООП Java предполагает дополнительный подход для упорядочивания и структурирования работы классов. Этот подход предполагает то, что кроме наследования от класса к классу своего внутреннего устройства можно выделить специальные абстрактные описания интерфейсов классов (не путать с абстрактными классами). И классы не связанные между собой «узами наследования» могут иметь общие интерфейсы, которые они наследуют из одного общего для них шаблона.
Это новый путь для еще более развитой работы с классами.
Это действительно большая тема и здесь достаточно привести код:
Код:
// общий интерфейс работы с валютой
interface Currency
{
	// сигнатура (описание) метода интерефейса форматирования валюты 
	// (например: 12.1 в вид "12.10"

	function formatCurrency(c:Number);
	
	// сигнатура метода конвертирования валюты

	function convertCurrency(from:Object, to:Object);
}


// некий компонет для отображения текстовых данных
class textDisplay extends Movieclip implements Currency
{
	// реализация метода formatCurrency
	function formatCurrency(c)
	{
		// ...
	}
	
	// реализация метода convertCurrency
	function convertCurrency(from, to)
	{
		// ...
	}
	
	// другие методы компонента
}

// некий компонет для отображения текстовых данных
class textLine extends Movieclip implements Currency
{
	// реализация метода formatCurrency
	function formatCurrency(c)
	{
		// ...
	}
	
	// реализация метода convertCurrency
	function convertCurrency(from, to)
	{
		// ...
	}
	
	// другие методы компонента
}
Директива import

В МХ, для того чтобы использовать код из разных файлов мы использовали директивой #include. При компиляции Flash-файла код просто помещался на место строки с указанием нужного файла с кодом. Такой подход не всегда универсален. Например, два разных компонента используют одну и ту же библиотеку с кодом. Мы можем оказаться в ситуации, когда один и тот же код помещен в наш проект дважды. Поэтому приходилось идти на «визуальные» жертвы: использовать библиотеку Flash-редактора.
Директива import существует в Java, и во Flash она переместилась внешне без изменений. Возможно, данная директива будет обладать еще большими средствами для объединения библиотек. Возможно здесь даже речь идет о «настоящем» импорте как Java… Поживем увидим.
Похоже, «почти как Джава» – становится ключевой фразой при обзоре нововведений семерки.

Работа с ошибками

Теперь не нужно боятся что плеер «зависнет» выполняя ваш код. Нам больше не страшна рекурсия и деление на ноль. Используя try и catch мы сможем наши ошибки и отловить и обработать. Я лично пока не осознал всю мощь этого нововведения но есть утверждение, что подобные конструкции, будут даже поважнее изменений в ООП... Ну не знаю, не знаю

Это конечно почти как Джава, но это все-таки Скрипт

Заявленная макромедия армия Flash-разработчиков в размере 650 000 человек, конечно же не состоит из одних программистов, которым только и подавай ООП и которые Джавы не боятся. Поэтому новая редакция ActionScript , мягко скажем, гораздо «добрее» чем Джава. Во всяком случае создавать процедуру без класса можно
По мне, такие компромиссы конечно же нужны для массовости технологии, но для продвинутых разработчиков пора вводить несколько уровней при компиляции, когда разработчик сам укажет свой уровень и не будет плодится «грязь» в готовом байт-коде. Надеюсь, что так думают и разработчик от Макромедия… Ведь были в свое время намеки на директиву #strict…

НОВОСТИ О ПРАВОЙ КНОПКЕ

Возможно, что для «не флэшера» тот факт, что мы до сих пор не можем обрабатывать событии нажатия правой кнопки звучит как нонсенс. Но мы как то уже свыклись с данным постулатом. И вечные мольбы к Макромедия уже стали частью Flash-фольклора… Существует даже утверждение, что правая кнопка, и появления всем знакомой надписи, о том, что это Flash, было сильнейшим и удачным маркетинговым и рекламным ходом Макромедия. Ведь никто бы и не узнал что это Flash…
И вот случилось. У нас появилась правая кнопка! Да и колесико мышки в придачу.
И кроме этого мы можем не только совсем убрать контекстное меню правой кнопки, мы можем его настраивать под себя, добавляя новые элементы и т. д.
Счастье в которое просто не верится
А если серьезно, то мне данный факт указывает на то, что Flash перешагнул некую историческую черту, и сейчас не нужно подписывать каждый Flash ролик, всем и так понятно, что это Flash.

О ПОЛЬЗЕ ПЕТИЦИЙ

В свое время известный Flash-гуру КОЛИН МУК выступил с инициативой, и написал петицию от лица сообщества Flash-разработчиков к Макромедия, в которой слезно просилось наконец-то организовать процесс загрузки мувиклипов во Flash. Парадоксальная ситуация: «нормально» во Flash можно загружать все что угодно: и звук и видео и XML, но только не «родной» Flash-файл – SWF! Конкретно предлагалось включить в новую версию Flash класс MovieClipLoader, который будет обрабатывать все события связанные с загрузкой SWF.
И это произошло! Похоже, что под практику петиций от разработчиков заложена твердая основа!
Я, по своему опыту, конечно же уверен, в том что появление нового класса не изживет вопросов типа: «как сделать полосочку, пока мой ролик грузится». Но все равно все это очень приятно. Внимание к просьбам разработчиков очень обнадеживает.

ОБЩЕЕ ВПЕЧАТЛЕНИЕ

Общее впечатление, как всегда при знакомстве новой версии Flash: «Это просто невероятно! Ну удивили так удивили. Немного страшно».
Но закалка 2-3-4-5-6-7 – серьезный опыт. Вообще, похоже, такие резкие скачки, становятся уже привычкой. Разгрызаем до самой сути текущую версию, казалось бы, что мы все уже знаем, а тут и новая версия не за горами.
Общий вывод: поживем-увидим. Будет и Macromedia Central и Royal. Очевидно, что сейчас настало время перемещения готовых наработок из сообщества Java на Flash. Флэшерам стало тесно в рамках JavaScript, и Java в полной мере удовлетворяет наши растущие потребности. Думаю, что на пару версий Flash это точно

удачи,
Evgeniy Potapenko (aka john)


Последний раз редактировалось john; 17.07.2003 в 21:09.
Старый 17.07.2003, 21:33
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 3  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Йоу!!! try ... catch рулит :)))))

Джон, вопрос. Очень важный. Почти жизненный. Можно ли будет перегружать операвторы [+], [-],[*]... ну и тэдэ?
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 17.07.2003, 21:37
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 4  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Насколько я понимаю, все эти звери централы и рояли не будут уже в привычном понимание swf-файлами созданными в таком простом редакторе как Flash ...

Старый 18.07.2003, 00:09
Дениска вне форума Посмотреть профиль Отправить личное сообщение для Дениска Посетить домашнюю страницу Дениска Найти все сообщения от Дениска
  № 5  
Дениска
"редиска"

Регистрация: Jun 1999
Адрес: www.cleoag.ru
Сообщений: 1,240
Отправить сообщение для Дениска с помощью ICQ
у ММ есть практика выкидывать некоторые фичи из беты к окончанию тестирования.

бум надеятся что кое что они все таки оставят %)
__________________
cleoag.ru

Старый 18.07.2003, 14:02
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 6  
mort

Регистрация: Jun 2002
Сообщений: 391
А когда ОНО нас озарит своим божественным сиянием (это был первый вопрос) и есть ли слухи относительно скорости графики и самого скрипта (это, соответственно, второй)...
А-а-а?

Старый 18.07.2003, 18:08
Ales вне форума Посмотреть профиль Отправить личное сообщение для Ales Найти все сообщения от Ales
  № 7  
Ales
F1
 
Аватар для Ales

Регистрация: Apr 2000
Сообщений: 3,620
Так так... Разделение продуктов. А никакой очередной приблуды для создания три де для дизайнерской версии не ожидается?
Или отчаявшиеся флаш-разработчики уже решили в петицию таких требований не вносить?

Все это мне напоминает майку. Сначала была одна понятная хорошая прога, потом ее раскрамсали, написали кучу добавлялок и так далее. Теперь в принципе майка может все, но уследить за всеми приблудами для нее почти невозможно. Поэтому, в Школе по ней аж 5 курсов!

Старый 18.07.2003, 18:16
Spice вне форума Посмотреть профиль Отправить личное сообщение для Spice Найти все сообщения от Spice
  № 8  
Spice

Регистрация: Jul 2003
Сообщений: 2
По умолчанию возможность автоматической сборки

Привет все.
Интересует такой вопрос:
В будущей семерке обещают "телодвижения" в сторону более серьезной поддержки программных фич. Следовательно, компоненты будут писать
все более сложные и сложные.
Кому надо писать , чтобы макромедиа добавила возможность автоматической сборки проекта из командной строки ?
И есть ли возможность реализовать это в MX ?
Для меня это актуальный вопрос.

Старый 18.07.2003, 19:03
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 9  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Чейто не нравится мне все это ...

Тем кто хочет писать серьезные вещи не нужен флеш, для серьезных вещей есть серьезные среды разработки.

Флеш приближается к Java - а не легче ли писать на Java?

Такой продукт уже не будет иметь безоговорочного успеха в инете - для флеша инет - это главное, все его принципы разработки опирались на специфику интернета.

Похоронены довольно мощные вещи вроде Директора, а один лишь imagingLingo из Директора заставил бы забыть о всяких мелочах ... ,
... mouseWheel, rightMouse - это какие-то объедки, кому они нужны, вот в Дире есть - ктонибудь пользуется? ...

3D естественно не будет ... во всяком случае онлайнового, а в оффлайне макромедии уже не тягаться с кучей конкурентов ...

А если еще посмотреть на статьи-трепыхания на Макромедии по поводу SVG и SWF - то складывается впечателение, что "Римская империя" Макромедии переваливает за свои лучшие годы ...

Старый 21.07.2003, 12:10
netstuff вне форума Посмотреть профиль Отправить личное сообщение для netstuff Найти все сообщения от netstuff
  № 10  
netstuff
 
Аватар для netstuff

Регистрация: Apr 2001
Адрес: San Pietroburgo
Сообщений: 1,408
Цитата:
Такой продукт уже не будет иметь безоговорочного успеха в инете - для флеша инет - это главное, все его принципы разработки опирались на специфику интернета.
чё-т, я не понял... а что мешает семерке оставаться интернет-ориентированным приложением? исходя, естетственно, из тех данных, которые нам так любезно предоставил уважаемый john...
__________________
I denti non possono dire niente... senza la lingua...
Perche' la tua lingua e' mia!

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

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

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


 


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


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