Archive for декабря, 2007
Кому праздник, а кому и убойный месяц без выходных и по 12-14 рабочих часов в сутки.
Писать естесвенно некогда ) хотя вроде еще и есть что)
Вот пока что поздравлю редкого посетителя с грядущим праздником результатом работы нашей студии DeCafe, где тружусь я флешером.

открыточка.
Popularity: 2% [?]
декабря 27, 2007
В AS3.0 отсутствуют некоторые события Mouse, которые были доступны ранее.
Непонятно что побудило разработчиков отказаться от их реализации на уровне плеера, однако решение проблемы есть.
Нет. Я даже не буду расписывать решение сам ))
Об этом уже было написано.
Вот и еще одно свежее решение
http://www.scottgmorgan.com/…/ondragover-…-in-as3/
Popularity: 2% [?]
декабря 20, 2007
Обнаружил баг.
Если свойство multiline текстового поля типа input равно true, то даже если поле пустое, проверка на длину текста показывает 1. В поле сидит паразитный символ с кодом 13 (ввод). При проверке формы на заполненные поля – этот баг играет злую шутку. Визуально поле пустое, но для кода – оно заполнено.
ВАЖНО! Этот баг проявляется, если multiline задано в среде разработки Flash IDE. Программно заданное свойство лишено этого парзитного явления.
______
UPD: По наблюдениям @st@l@vist@ – Важную роль в этом баге играет еще и AutoKern. Если он отключен, то даже при multiline баг не прорявляется.
То есть AutoKern+multiline в поле ввода = баг с длинной текста. Более того, если в поле введен ОДИН символ – длина текста будет равной уже двум. Так что баг ко всему еще имеет и свою логику ).
Popularity: 4% [?]
декабря 16, 2007
Отличное, а главное, очень полезное он-лайн приложение – трейс битмапа в вектор. Очень приличный конвертер.
| 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% [?]
декабря 15, 2007
Иногда бывает нужно, чтобы случайное число с большей вероятностью выпадало ближе к минимальным, или максимальным значениям.
Простой пример – Слот машина.
Бонусные символы должны выпадать гораздо реже обычных символов.
Существует масса способов реализовать такой рандом, о них, к примеру была речь на форуме 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% [?]
декабря 12, 2007
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, и таких картинок много, а нам необходимо сделать скроллер для текстового поля. Пока картинки не загружены мы с большой долей вероятности получим неверную высоту поля.
Есть простой способ – нам нужно просто завести массив для учета встроенных картинок
И пройтись по текстовому полю циклом 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% [?]
декабря 11, 2007
На заметку.
Если нужно применить к клипу прямоугольную маску, вместо 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% [?]
декабря 9, 2007
Итак, о поддержке видео-кодека H.264 мы услышали, но как с ним работать в условиях флеш-плеера? Да ничего особенного, как оказалось. Все тот же Джастин Эверетт-Чёрч, все разложил по полочкам.
Даже если ваш проект скомпилирован под 7-й плеер, все равно вы можете работать с этим кодеком. Все дело именно в новом плеере.
Раньше у нас было два кодека on2vp6 и SorensonSpark. Оба кодека использовались в контейнере FLV. Новый кодек пакуется в контейнер mp4 и это жесткое требование – мп4 и все тут. К слову сказать – это общепринятая практика. Многие mov, 3gp и m4v файлы пакуют видео через кодек h.264 именно в контейнер mp4.
Если же мы имеем видео-файл другой организации (формата) – тогда, конечно, флеш плеер ничего сним сделать не сможет.
Если вы сами пакуете свои видео файлы – то тут все понятно – правильно пакуем, и все будет хорошо. Если вам попался чей то видео файл – то самый простой способ проверить его совместимость с плеером – просто проиграть его )
Popularity: 2% [?]
декабря 8, 2007
Недавно по нескольким блогам прокатилась волна негодования новой политикой безопасности. 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% [?]
декабря 8, 2007
Отличную статью нашел у Джоша Дура. Может он и дура, но умную вещь написал. Правда пост старинный, но как он актуален и сейчас, особенно после того что сделали с сайтом adobe.com
http://www.joshdura.com/article/520/how-not-to-implement-video
Те, кто в английском не силен, могут прочесть мой вольный перевод.
«Я не хочу сказать, что я какой-то особенный эксперт в видео, но я знаю одну вещь: автозапуск – это плохо. Особенно, если видео находится на главной странице сайта. Если я открываю ваш сайт, и вдруг слышу:
Верьте, или нет, но эректильной дисфункцией страдают множество парней…
… то вы где-то что-то делаете не так. Поправьте меня, если я не прав, но видео должно открываться только по моему требованию. Видео играет, когда ВЫ, а не КТО-ТО другой, хотите чтобы оно играло. Конечно есть YouTUBE с автостартом – но там вы знаете во что ввязываетесь, а более того, они не впаривают рекламу в своем видео.
И уж если так распирает и хочется запустить видео, то хотя бы отключите звук.»
Popularity: 3% [?]
декабря 7, 2007
Previous Posts