Archive for декабря, 2007

Новый год.

Кому праздник, а кому и убойный месяц без выходных и по 12-14 рабочих часов в сутки.

Писать естесвенно некогда ) хотя вроде еще и есть что)

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

открыточка.

Popularity: 2% [?]

4 комментария декабря 27, 2007

Реализация onDragOver, onDragOut, onReleaseOutside

В AS3.0 отсутствуют некоторые события Mouse, которые были доступны ранее.
Непонятно что побудило разработчиков отказаться от их реализации на уровне плеера, однако решение проблемы есть.
Нет. Я даже не буду расписывать решение сам ))
Об этом уже было написано.
Вот и еще одно свежее решение

http://www.scottgmorgan.com/…/ondragover-…-in-as3/

Popularity: 2% [?]

декабря 20, 2007

Грабля inputField

Обнаружил баг.
Если свойство multiline текстового поля типа input равно true, то даже если поле пустое, проверка на длину текста показывает 1. В поле сидит паразитный символ с кодом 13 (ввод). При проверке формы на заполненные поля – этот баг играет злую шутку. Визуально поле пустое, но для кода – оно заполнено.

ВАЖНО! Этот баг проявляется, если multiline задано в среде разработки Flash IDE. Программно заданное свойство лишено этого парзитного явления.

______

UPD: По наблюдениям @st@l@vist@ – Важную роль в этом баге играет еще и AutoKern. Если он отключен, то даже при multiline  баг не прорявляется.

То есть AutoKern+multiline в поле ввода = баг с длинной текста. Более того, если в поле введен ОДИН символ – длина текста будет равной уже двум. Так что баг ко всему еще имеет и свою логику ).

Popularity: 4% [?]

4 комментария декабря 16, 2007

Vector magic.

Отличное, а главное, очень полезное он-лайн приложение – трейс битмапа в вектор. Очень приличный конвертер.

Input: JPG, GIF, PNG, BMP, TIFF
Output: EPS, SVG, PNG

Сделано на флексе.

http://vectormagic.stanford.edu/

И посмотрите сравнение результатов VM, Adobe LiveTrace и Corel.

http://vectormagic.stanford.edu/vectorize/comparisons

Popularity: 4% [?]

8 комментариев декабря 15, 2007

expRandom.

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

Простой пример – Слот машина.
Бонусные символы должны выпадать гораздо реже обычных символов.
Существует масса способов реализовать такой рандом, о них, к примеру была речь на форуме flash-mx

Вот и мне тут понадобилась такая функция.

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

1
2
3
4
5
6
function expoRandom(range:Number,w:Number):Number
{
   w = Math.max(w,1);
   w = Math.min(w,709);
   return Math.log(1+Math.random()*(Math.exp(w)-1))*(range/w);
}

В функцию передается два параметра – собственно диапазон, и, не знаю как это правильно обозвать, степень разброса. От это степени зависит насколько сильно выпадающие значения будут тесниться к максимальному краю. Чем больше степень, тем ближе к краю.

В функцию вставлена небольшая проверка – чтобы ширина не была меньше 1 (в этом случае мы получим обычный рандом) и не была больше 709 (в этом случае выражение Math.exp(w) даст нам infinity). Их собсвенно можно убрать, дабы не забивать процессор лишней работой.

Вся магия тут завязана на простой принцип – есть график логарифма. Мы берем случайное число по оси X и находим его логарифм по оси Y. Немного корректируем под наш диапазон – и результат на лице.

Вот к примеру такой:
http://bbexp.ru/blog/_stuff/random.html

Popularity: 5% [?]

3 комментария декабря 12, 2007

Прелоадер для ‘img’

TextField – субстанция крайне интересная, взбаломошная и мистическая.
Обуздание оной подчас превращается в подвиг Геракла.
Несколько статей о TеxtField я обязательно размещу на страницах этого блога.

Многие знают, что в текстовое поле с подключенным html можно грузить картинки и флешки, а также вставлять символы из библиотеки.
Но вот вопрос – а можно ли взаимодействовать с этими объектами? Например возможен ли прелоадер?

ДА и очень просто. Фактически тег <IMG> создает внутри тексатового поля новый MovieClip. Если в html-коде прописан id для IMG, то будет создан клип именно с таким instance name. И обращаться к этому клипу можно через текстовое поле. К примеру если в текстовое поле my_txt внедряется картинка

<img id="img" src="http://yoursite.com/images/someIMG.pg" alt="" />

То мы можем обратиться к ней my_txt.img

Но что если у нас есть html-текст с img без id, и таких картинок много, а нам необходимо сделать скроллер для текстового поля. Пока картинки не загружены мы с большой долей вероятности получим неверную высоту поля.
Есть простой способ – нам нужно просто завести массив для учета встроенных картинок

var htmlIMG:Array = [];

И пройтись по текстовому полю циклом for…in, помня, что картинки – это объекты типа MovieClip.

for (var mc in my_txt)
  {
     if(typeof(my_txt[mc]) == "movieclip")
     {
         trace("found IMG: "+my_txt[mc]);
         htmlIMG.push(my_txt[mc]);
     }
}

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

Popularity: 9% [?]

5 комментариев декабря 11, 2007

ScrollRect vs setMask

На заметку.

Если нужно применить к клипу прямоугольную маску, вместо MovieClip.setMask(mc:MovieClip) лучше воспользоваться свойством scrollRect (доступно от 8-й версии и выше).

Плюс в производительности на лицо. Более того – под такой «маской» не пропадают системные и не-внедренные шрифты.

Использование предельно просто:

1
2
3
import flash.geom.Rectangle;
var maskRect:Rectangle = new Rectangle(x,y,width,height);
my_mc.scrollRect = maskRect;

С такой «маской» удобно делать также и скроллеры (собственно название выдает).
Достаточно поменять значение x, y для Rectangle, и визуально мы видим смещение контента мувиКлипа.

Popularity: 12% [?]

7 комментариев декабря 9, 2007

С чем же едят H.264?

Итак, о поддержке видео-кодека H.264 мы услышали, но как с ним работать в условиях флеш-плеера? Да ничего особенного, как оказалось. Все тот же Джастин Эверетт-Чёрч, все разложил по полочкам.
Даже если ваш проект скомпилирован под 7-й плеер, все равно вы можете работать с этим кодеком. Все дело именно в новом плеере.

Раньше у нас было два кодека on2vp6 и SorensonSpark. Оба кодека использовались в контейнере FLV. Новый кодек пакуется в контейнер mp4 и это жесткое требование – мп4 и все тут. К слову сказать – это общепринятая практика. Многие mov, 3gp и m4v файлы пакуют видео через кодек h.264 именно в контейнер mp4.
Если же мы имеем видео-файл другой организации (формата) – тогда, конечно, флеш плеер ничего сним сделать не сможет.
Если вы сами пакуете свои видео файлы – то тут все понятно – правильно пакуем, и все будет хорошо. Если вам попался чей то видео файл – то самый простой способ проверить его совместимость с плеером – просто проиграть его )

Popularity: 2% [?]

2 комментария декабря 8, 2007

BitmapData.draw() и политика безопасности нового плеера.

Недавно по нескольким блогам прокатилась волна негодования новой политикой безопасности. BitmapData.draw() отказывается захватывать видео.
http://www.novemberain.com/2007/12/6/moviestar-security-arghh

И вот кажется есть отклик, разработчики объясняют свой поступок.
На Justin’s Flash Blog > WIWTW: Bitmapdata.draw and RTMP Snapshottin
cобственно можно и найти объяснение.

И вновь, для тех кому лень читать на английском – вольный перевод.

«Меня, – говорит Джастин, – в последнее время несколько раз спрашивали о безопасности и BitmapData.draw. В Flash Player были некоторые ограничения для этого метода, дабы предотвратить кражу контента. Недавно было обнаружена «возможность» (да попросту «грязный хак» -авт.) для захвата видео. К сожалению, то что кому то возможность – для другого баг и просчет )

Этот баг был поправлен в Flash Player 9.0.115. Однаго команда разработчиков флеш плеера и медиа сервера осознала, что штука полезная, и надо бы разработчикам такую возможность оставить, когда им это нужно.

Новая система разрешения захвата RTMP решается в два шага, требуя изменений в Flash Player и также в Flash Media Server. Изменения были сделаны на это неделе (пост был сделан 7-го декабря), в день анонсироваия Flash Media Server 3. Stream кoнтент может иметь флаг который распознается Flash Player 9.0.115 и дает разработчику возможность делать «снимки» с потокового видео».

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

«Конечно, возможны хаки, и прочие ухищрения для обхода системы безопасности, но разрабочики Плеера не дремлют, и в ближайших релизах таке хаки не пройдут. Вместо этого Adobe прислушивается к комьюнити и снабжает плеер полезными и поддерживаемыми официально опциями».

Вот такая история. Интересно – а как будут обстоять дела у пользователей других серверов типа wowza и Red5?

Popularity: 5% [?]

3 комментария декабря 8, 2007

Видео и эректильная дисфункция.

Отличную статью нашел у Джоша Дура. Может он и дура, но умную вещь написал. Правда пост старинный, но как он актуален и сейчас, особенно после того что сделали с сайтом adobe.com

http://www.joshdura.com/article/520/how-not-to-implement-video

Те, кто в английском не силен, могут прочесть мой вольный перевод.

«Я не хочу сказать, что я какой-то особенный эксперт в видео, но я знаю одну вещь: автозапуск – это плохо. Особенно, если видео находится на главной странице сайта. Если я открываю ваш сайт, и вдруг слышу:

Верьте, или нет, но эректильной дисфункцией страдают множество парней…

… то вы где-то что-то делаете не так. Поправьте меня, если я не прав, но видео должно открываться только по моему требованию. Видео играет, когда ВЫ, а не КТО-ТО другой, хотите чтобы оно играло. Конечно есть YouTUBE с автостартом – но там вы знаете во что ввязываетесь, а более того, они не впаривают рекламу в своем видео.

И уж если так распирает и хочется запустить видео, то хотя бы отключите звук.»

Popularity: 3% [?]

декабря 7, 2007




МЕТА

Метки

2d 3D ActionScript adobe ae after effects animation animator_at_work AS2.0 AS3.0 astro bones bug bugfix debug deep linking draw drawing extension Flash flash CS4 flex fscommand fx html IK Math mindstream music-video NB opensource security swfaddress TextField traps uafpug useful utils video Новости анимация кинематика кости поток сознания туториал

Календарь

Декабрь 2007
Пн Вт Ср Чт Пт Сб Вс
    Янв »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Архив

Ссылки

Радио