Мысли с тэгом as3

11 августа 2009. Маленький 3d-пример

Я вдруг осознал что вообще ни разу не пользовался 3D-трансформациями 10-го плеера. Чтобы успокоить себя (все хорошо, в плеере действительно есть поддержка 3d-трансформаций, Алексей, тебя никто не обманывал), сделал по-быстрому на ночь маленький пример (текст выделяется):

Код примера простейший:

if (this.stage)
{
	this.init()
}
else
{
	this.addEventListener(Event.ADDED_TO_STAGE, init)
}
function init(e:Event = null)
{
	this.stage.addEventListener(MouseEvent.MOUSE_MOVE, render)
}
function render(e:Event=null)
{
	this.logo.rotationY=-(this.mouseX/this.stage.stageWidth*180-90)
	this.logo.rotationX=(this.mouseY/this.stage.stageHeight*180-90)
}



Logo – DisplayObject на сцене.

Комментировать | , , |

29 июля 2009. Игра

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

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

Звуки записываются, графика постепенно прикручивается. Рисовать решил сам – посмотрим, что из этого получится :D Если времени будет чуть побольше, а лени поменьше, то игра может увидеть свет через пару недель. А если со временем будет совсем хорошо, то, при определенном везении, и через неделю.

Публичного бетатестинга не будет.

Комментировать | , , |

8 марта 2009. Генерация документации в FDT с помощью asdoc

В Flex Builder уже встроена функция генерации документации, однако в FDT ее нет. Но это не беда, ведь при наличии самого asdoc (поставляется вместе с Flex SDK) можно без проблем сгенерировать документацию и из FDT при помощи ANT.

Для начала создаем в корневой директории текущего проекта два файла: ‘build_project.properties’ и ‘build.xml’…

Комментировать | |

11 февраля 2009. Использование пакета fl в FDT и Flex Builder

Наверняка каждый, кто только начинал использовать FDT, сталкивался с тем, что невозможно импортировать классы из пакета fl (fl.controls, fl.transitions и прочие). К сожалению, просто указать на какую-то папку Flash IDE для импорта этого пакета нельзя – нужно компилировать классы из пакета в swc.

Но не все так плохо, ведь все уже сделано за Вас :) Можете просто скачать swc и указать его в среди linked libraries в свойствах вашего Flash-проекта.

Комментировать [1] | , |

3 января 2009. Event bubbling на живом примере

Почему-то очень часто на форумах по AS3 возникают вопросы по всплыванию событий (Event Bubbling). Многие программисты просто не понимают самой модели поведения этой схемы и постоянно наступают на грабли, пытаясь понять, почему они не могут отловить событие в другой ветке.

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

И вот, в какой-то момент, на одного из строителей в двадцатой комнате на тридцатом этаже одного из небоскребов падает на голову кирпич…

Комментировать | |

8 декабря 2008. Баг Loader в Flash Player 9

В 9-м плеере нельзя повторно использовать один и тот же Loader для загрузки нового контента. Приходится грузить новым Loader’ом, а жаль. В 10-м плеере такой проблемы нет.

Комментировать | |

23 ноября 2008. Плоды алхимии. Doom на Flash.

Adobe Alchemy начала приносить свои плоды. Программист Майк из основной команды Newgrounds скомпилировал первую часть old-school шутера Doom из исходного кода. Да, вы не ослышались: первый Doom из C в AS3. Полагаю, что с рендерингом ему пришлось повозиться. Хотя черт его знает. Пойду, почитаю об алхимии :)

Поиграть можно тут. Требуется 10й Flash Player.

Комментировать | , , , |

20 октября 2008. Переведен "Essential ActionScript 3.0"

Да, я говорю именно про книгу “Essential ActionScript 3.0” Колина Мука. В продаже пока нет, но можно сделать предварительный заказ на декабрь. Настольная книга категории “Must have” любого уважающего себя флэшера, связанного с программированием.

Комментировать [2] | , |

13 октября 2008. Почему размещение кода в кадрах оправдано

Речь, разумеется идет об ActionScript 3.0. После его появления многие программисты стали пренебрежительно относиться к коду в кадрах мувиклипов. А зря. Не стоит так сужать свой кругозор до уровня обычных Java-кодеров.

Я не говорю о том, что размещать код только в кадрах хорошо. Нет, это, все-таки, пережитки AS2. Но использование одного-двух кадров MainTimeLine вместо конструктора DocumentClass’а вполне оправданно, как минимум, по двум причинам:

  • Прелоадер. Помните, в какой геморрой превращается создание прелоадера с помощью DocumentClass? Экспорт во второй кадр или внешний swf-прелоадер… всего этого можно избежать, если вместо кода в конструкторе DocumentClass использовать код в первых двух кадрах MainTimeLine.
  • Размещение клипов. В некоторых проектах не требуется полной динамичности происходящего на сцене, когда заранее не известно сколько объектов будет в кадре, где какой будет находиться и что выполнять. Иногда требуется просто разместить элементы интерфейса (к примеру, сайта или простенькой игры) прямо на сцене в IDE. В этом случае, описывать кодом все, находящееся на сцене удобнее, все-таки, в кадре. Хотя никто не мешает вставить потом код в DocumentClass.

Ну, и потом, не стоит забывать, что все, что пишется в кадрах главной монтажной линейки, на самом деле, является методами (условно можно назвать их frame1(), frame2()), которые вызываются из конструктора главного класса посредством метода addFrameScript() (нет, можете не искать его в документации). Попробуйте как-нибудь сделать флэшку с кодом в первом кадре и просмотреть ее код с помощью какого-либо из доступных декомпиляторов.

Комментировать | |

8 октября 2008. Сумасшедший ColorMatrixFilter

Игрался сегодня с фильтрами и битмапдатой и случайно обнаружил баг (баг ли?) в FlashPlayer 9.

Попробуйте в каком-нибудь из проектов, где динамически перерисовывается BitmapData, применить к ней фильтр flash.filters.ColorMatrixFilter со следующей матрицей:

var cmf:ColorMatrixFilter=new ColorMatrixFilter([1,0,0,0,8000,
                                                 0,1,0,0,8000,
                                                 0,0,1,0,8000,
                                                 0,0,0,1,0])


Это приведет к сумасшедшему результату в сочетании с BlurFilter. Передавать нужно именно 8000 в массив по указанным индексам. Почему 8000?..

Комментировать | |

Copyright © Alexey "Datagreed" Strelkov, 2008 | Designed by Kevin Potts | Мое портфолио
Перепечатка материалов сайта без разрешения автора (Алексей Стрелков) запрещена.