Archive for января, 2008
Недавно в блоге GarbageCollector появилась статья о новых событиях класса NetStream.
Я в свою очередь ) недавно обнаружил некоторые нововведения и в классе FileReference, впервые появившемся в Macromedia Flash 8.
Когда я впервые стал смотреть на возможности этого класса, меня разочаровало то, что на сервер вместе с загружаемым файлом можно отправить данные только GET-методом. (Классический урл-запрос с парами переменная=значение). Также нельзя было получить от сервера никаких данных, по завершении загрузки.
Недавно вновь обратился к этому классу, но уже в Adobe Flash CS3 – и, о чудо! Новые свойства и события, как раз на эту тему.
Новое свойство postData:String. – Как видно из названия (опыты подтверждают) – POST параметры, которые отправляются на сервер вместе с загружаемым файлом.
Польза? Как минимум отправка сложной формы, включающей некий файл (картинку, звук, архив) на сервер. Данные формируются строкой из все тех же пар переменная=значение.
Новое событие:
1
| onUploadCompleteData = function (fileRef:FileReference, data:String) {}; |
Как видно из конструкции – по завершению аплоада, если сервер отдает какие то данные в ответ, то мы можем их получить в переменной data:String. Очень удобно хотя бы для того, чтобы сообщить пользователю, что его драгоценные данные отправлены и приняты.
Вот такие бонусы. Добавлю только, что все это работает в плеере 9.0.r28 и выше.
Popularity: 8% [?]
января 29, 2008
Форматирование текста с помощью HTML во флеш,что ни говори – гораздо удобнее, чем форматирование с TextFormat, практически в любой ситуации.
Если Вас сильно огорчает сильно урезанный набор тегов, который HTML парсер флеша понимает – читайте дальше.
Итак, что мы имеем в распоряжении:
P, B, I, U, A, BR, LI, I, IMG, SPAN, TEXTFORMAT, FONT.
Как видим – ни хедеров, ни STRONG, который рекомендуется вместо B. Заставить флеш-хтмл-парсер понимать h1, h2…. strong, em не прибегая к хакам – елементарно.
У нас же есть законный TextField.StyleSheet. А с помощью css можно форматировать любой XML документ. Грамотный HTML – это тот же XML, поэтому нам достаточно описать в каком виде мы хотим видеть наши заголовки, описать strong, em – и все что нам нужно в таблице стилей.
Маленькая странность – любой неподдерживаемый тег, описанный в таблице стилей – разрывает строку. В случае заголовоков это даже полезно, а вот strong, разрывающий пасть строке – это экзотика К счастью флеш поддерживает свойство display. Так что display: inline – поставит все на свои места.
Дружите с цсс+хтмл. Великий поклон разработчикам за то, что они избавили меня лично от необходимости повсеместно пользоваться текстФорматом. Даже за такой куцый парсер хтмл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| // стиль
var style_string:String = "h1 {font-size: 20; font-weight: bold} ";
style_string += "strong {font-weight: bold; display: inline;}";
var style_css:TextField.StyleSheet = new TextField.StyleSheet();
style_css.parseCSS(style_string);
// текст
var html_text:String = "
</code>
<h1>Нeader</h1>
";
html_text +="<strong> Very strong line </strong>";
html_text +="usual text";
// текстовое поле
var tf:TextField = this.createTextField("tf",0,10,10,400,200);
tf.multiline = true;
tf.wordWrap = true;
tf.border = true;
tf.html = true;
tf.condenseWhite = true;
tf.styleSheet = style_css;
tf.htmlText = html_text; |
Ну, а если требуется что-то более продвинутое – посмотрите на компонент HTMLRenderer Андрея Горбатова: http://gorbatov.blogspot.com/…/htmlrenderer
Popularity: 11% [?]
января 28, 2008
Очень надоедливый баг, который я обнаружил только при работе в CS3.
Создаем статичное текстовое поле.
Вносим в него текст.
Задаем тип рендеринга – Device-Fonts
Публикуем свфку, сохраняем FLA.
Пока все нормально.
Когда FLA открывается в следующий раз – Статичное текстовое поле уже рендерит текст как Anti-alias for animation, и приходится вновь выставлять Device-Fonts.
В итоге я перестаю использовать статичные поля и делаю их невыделяемыми динамическими. Но все же баг. Пожаловался Adobe.
Кто-то встречал что-то подобное? Какие оси и версии IDE?
Popularity: 4% [?]
января 15, 2008
Сегодня делюсь опытом по анимации.
Если у нас есть кусок растра, который во чтобы то ни стало надо как то анимировать – можно воспользоваться увлекательной нарезкой персонажа на куски )
Принцип метода достаточно прост.
Имея представление о рельефе анимируемой фигуры, разбиваем растр на несколько клипов, фигурно отсекая лишние части на каждом уровне. Очень неплохо таким способом можно анимировать лица, морды, руки и т.д.
Первый пример наглядно иллюстрирует суть метода.

Главное – не перестараться со смещением верхних слоев – иначе станут видны нежелательные части тела на нижних слоях. Иногда, по необходимости, можно конечно и подкрасить пару тройку пикселей, чтобы заретушировать нежелательные детали на нижних слоях.
Вот еще пример псевдо-3D-нарезки.

Popularity: 4% [?]
января 10, 2008