На днях у меня возникла резко возникла необходимость в «правильном» таймере для генерации событий. Когда затестировал стандартный Timer на маленьких временных интервалах я пришел в тихий ужас, например, на величине тика 125мс я получил колоссальное расхождение между реальными шагами порядка 30 процентов или около того. И вот я стал думать, а что же мне вообще делать?
Данный пост является продолжением моей первой публикации и будет более кратким. Напомню, в предыдущей раз я показал как можно получить события MouseOver и MouseOut для ссылки в htmlText. Возьмем для примера TLFTextField. Наши ссылки выглядят в нем просто ужасно, они мерзкого синюшного цвета да еще и underline(((
Давайте это лечить
Переписываю сейчас свой движок для поддержки Stage3D. Появилась необходимость создавать текстурные атласы. Поискал утилиты в интеренете, либо платные и могут не всё, что надо, либо кривые и вообще не могут то, что надо.
Ну вот наконец-то и мой первый пост на блогах, я очень надеюсь что эта информация окажется полезной. Некоторой части AS3 кодеров возможно известно, что у текстового линка в htmlText совершенно невозможно подписаться на MouseOver и MouseOut, а иногда так хочется при наведении на некую часть текста например в хинте к игре показать что-нибудь этакое. Конечно можно вручную подкладывать невидимые кнопки и т.п., ну а если часть текста заскролена? Что же делать в таком случае? Вот мое решение:
Немного поразбирался с новым 3d API из Flash Player 11 (то, что раньше называлось Molehill).
Все буду писать во FlashDevelop. Специально обновил версию до последней на текущий момент 4.0.0 RTM. Чего и всем желаю. В предыдущей версии, кроме выбора Flash Player 11 в опциях, надо было еще добавлять дополнительный параметр компилятора -swf-version=13. А в еще более предыдущих поддержки 11-ого флешплеера вообще не было.
Для компиляции примеров недостаточно SDK, нужна еще библиотека отсюда. Она маленькая, а нужен из нее всего один класс (AGAL mini assembler).
Документация на сайте Adobe по умолчанию не показывает классы Stage3D, Context3D и прочие, а заодно и их методы, пока не поменяешь фильтр с Flash Player 10.1 на Flash Player 11.1 (сверху окошка).
Сразу дам ссылку на отличную статью про написание шейдеров на AGAL: Пишем шейдер на AGAL.
Начать предлагаю с простого и короткого примера, который выведет на экран треугольник.
Но сегодня столкнулся с интересным глюком. Оказывается событие MOUSE_LEAVE при нажатой клавише мыши срабатывает только после отпускания мышки за пределами флешки.
Вот флешка, в которой этот глюк проявляется, попробуйте нажать кнопку мыши и, удерживая ее, вывести курсор за пределы флешки:
Библиотека для создания пользовательских интерфейсов AlternativaGUI вышла в свет. Загрузить ее можно с официального сайта компании AlternativaPlatform в разделе GUI. Библиотека распространяется бесплатно и может беспрепятственно использоваться в том числе в коммерческих проектах. Согласно лицензионному соглашению нужно лишь поставить в вашем проекте или его описании ссылку на сайт alternativaplatform.com.
AlternativaGUI обеспечивает большую гибкость в плане создания новых компонентов интерфейса или доработки существующих, что достигается за счет использования только базовых классов. В библиотеке представлен широкий набор элементов пользовательского интерфейса: кнопки, контейнеры, линейные контейнеры, скроллбар, утилиты для работы с растровой графикой и другие.
Сегодня, работая над проектом не за своей обычной машиной, а за подвернувшимся под руку Windows-сервером, я случайно узнал о любопытном но, к счастью, нюансе класса Sound. Если в системе отсутствует звуковая карта, то после попытки воспроизведения звука метод play() возвращает null, что может стать причиной ошибки, генерируемой отлично работавшим на других машинах кодом.
Приведу пример:
var menuMusic: Sound = new MenuMusic; // так называется наш звук
var menuMusicSoundChannel: SoundChannel = new SoundChannel(); // здесь пока всё в порядке
menuMusicSoundChannel = menuMusic.play(); // строка выполняется, но после её выполнения menuMusicSoundChannel будет равно null
menuMusicSoundChannel.stop(); // и вот здесь флэшплеер выдаст ошибку об обращении к методу объекта, являющегося null'ом.
Указанный выше код отлично работает на машине со звуковой картой, но поведёт себя так, как написано в комментариях, на системе без неё.
Так зайдите на форум, он специально для этого. Зачем делать исключения, если можно зашариться на форум (раз время и желание есть пообсуждать что-то эдакое...}
ну хоть что-нибудь расскажи, реально интересно же, и я уверен не только мне :)
А автору цитаты анреспет — какая разница сколько игр сделано, главное чтобы...}
ну обман скорее психологический :) скачивая Angry Birds за бесплатно — ты ожидаешь полную версию Angry Birds (просто тебе повезло и игра сегодня бесплатная :) такое ...}
На 50 коментов ни одного с критикой.
Генератор уровней по-моему сыроват, из-за этого игра местами хардкорная:
Трамплин иногда запускает игрока прямиком ...}
Нет возможности читать вам лекции, тематических книг очень много. Вкратце.
Предсказания будущего — это громко сказано. На 90% (допустим) все события в бу...}