Документирование событий в ActionScript3 @eventType
Документирование событий в ActionScript3 @eventTypeПри написании кода очень важно оставлять комментарии и документировать методы/классы/события и т.д. Правильно описанный и задокументированный класс проще поддерживать, среда сможет дать более полную информацию о нем (в данном случае например предложить правильное автозаполнение для addEventListener
/removeEventListener
), да и выглядит он просто красивее.
Итак рассмотрим, как следует поступать, когда ваш as3 класс диспатчит события. Пусть у нас есть класс MyDispatcher
, который должен испускать события при начале и окончании работы. Опишем его и задокументируем в соответствии с правилами ASDoc.
Список бесплатных книг по программированию
Список бесплатных книг по программированиюНаткнулся на полезный список ссылок на бесплатно доступные книги по программированию на StackOverflow
http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books/392926#392926
И на всякий случай продублирую его здесь
Flash2PHP на GitHub
Flash2PHP на GitHubВыложил Flash2PHP на GitHub: https://github.com/greymag/flash2php.
Там же будут публиковаться клиентские библиотеки на разных языках для взаимодействия с f2p. Сейчас уже выложена библиотека для JavaScript. Библиотека на ActionScript3 готова, но выложена будет только в феврале.
GMFramework v1.0.15
GMFramework v1.0.15Обновлённая версия PHP фреймворка (исходники, phar).
Одно из нововведений - конструктор запросов в классе DBConnect. Метод принимает ассоциативный массив с допустимыми полями:
- SELECT - определяет операцию выборки, значение - поля для выборки, может быть массивом, тогда поля оборачиваются в магические кавычки, за исключением случаев:
- переданное значение является числом;
- переданное значение начинается с `;
- переданное значение начинается с '|";
- переданное значение - пустая строка (будет обёрнута в одинарные кавычки).
- FROM - таблицы выборки (будут обёрнуты в магические кавычки и, в зависимости от второго параметра, к этим названиям могут подставляться префиксы), может быть массив - если таблиц выборки несколько.
- JOINS - массив массивов вида array('join_operator'=>table_reference, 'ON'=>join_condition'|'USING'=>column_list), где table_reference вида FROM, join_condition вида WHERE, column_list вида SELECT.
- WHERE - условие, может быть массивом (в таком случае объединяется через AND), если это ассоциативный массив - то ключ считается названием поля (см. INSERT);
- GROUPBY.
- HAVING.
- ORDER BY - порядок, может быть массивом.
- LIMIT.
- INSERT|REPLACE - определяет операцию вставки, значение - строка полей, в которые будет происходить вставка (может быть пустым), массив полей или ассоциативный массив {название поля=>значение|массив значений}, если значение является строкой и не начинается с ` - оно будет пропущено через escape функцию и обёрнуто в '.
- INTO - имя таблицы (будут добавлены ` и по необходимости префикс).
- VALUES - строка значений, массив строк значений или массив массивов значений, в котором элементы расположены в нужном порядке (свойство игнорируется, если значения заданы в INSERT).
- ON DUPLICATE KEY UPDATE - строка значений или массив полей, если передана пустая строка и для вставки был передан массив - то обновлены будут все поля для вставки, если массив полей - то только переданные поля, при этом в качестве поля может выступать ассоциативный массив вида array(имя_поля=>значение) или строка, если нужно использовать значение из INSERT. Если был передан ассоциативный массив - ключи будут считаться названиями полей, а значения их новыми значениями.
- UPDATE - определяет операцию обновления, значение - см. FROM.
- SET - строка или ассоциативный массив поле=>значение, см. INSERT;
- DELETE - определяет операцию удаления, значение - см. FROM.
Пример использования:
$db = new DBConnect(); $sql = $db->buildQuery(array( 'SELECT' => array( 'id', 'name', 'desc' ), 'FROM' => 'table_name', 'WHERE' => array( 'id' => 10, 'name' => 'myname' ) ));
Также можно сразу выполнить запрос, построенный таким образом:
$db->queryb(array( 'SELECT' => '*', 'FROM' => 'table_name', 'WHERE' => array( '`id` > 10', '`count` = 2' ), 'ORDER BY' => '`count` DESC', 'LIMIT' => '5,10' ));
Введение в Starling
Введение в StarlingНа днях начал разбираться с фреймворком Starling для AS3. Прочитал в оригинале хорошую, всеми рекомендуемую книгу Introducing Starling. И уже теперь, случайно, наткнулся и на русский перевод этой книги (с дурацким и некорректным названием) - Перевод документации по Starling. Вдруг кому пригодится
UPD По старому адресу перевод больше не доступен. Обновил ссылку, но после переезда у автора видимо потерялись картинки, так что только текст
Обрабатываем переход страницы в активное состояние в Safari для iOS
Обрабатываем переход страницы в активное состояние в Safari для iOSВ HTML5 появились новые атрибуты событий (подробнее), в том числе для объекта window
такие атрибуты как onpageshow
и onpagehide
.
onpageshow
- скрипт будет запущен когда окно становится видимым;onpagehide
- скрипт будет запущен когда окно скрывается.
В Safari для iOS, если пользователь не закрыл Вашу страницу, а отправил приложение в фон (нажав кнопку home), а затем снова открыл Safari, то сработает обработчик onpageshow
. Таким образом можно отследить переход в активное состояние вашей страницы или Web-приложения для iPad, iPhone или iPod Touch.
Локализация приложений при разработке в XCode 4
Локализация приложений при разработке в XCode 4Введение
Статья даёт общее представление о локализации приложений в XCode, основываясь на моём опыте разработки первого приложения под iPhone. Под локализацией здесь я буду в основном подразумевать перевод фраз на разные языки, но следует помнить, что локализация включает в себя кроме этого форматирование дат, цен и т.д. в специфичном для каждой культуры виде, а также что графика тоже требует локализации.
Локализацию приложения в XCode можно условно разделить на две части:
- локализация строк, которые назначаются программно в коде;
- локализация элементов, выстроенных в Interface Builder (.xib, .nib, .storyboard - файлов).
Примечание. В дальнейшем все что будет упоминаться касательно .xib файлов должно быть справедливо и для .nib и .storyboard файлов.
box-shadow и border-radius в Android 3
box-shadow и border-radius в Android 3Стандартный браузер у планшетных компьютеров с ОС Android 3 некорректно обрабатывает внутреннюю тень (-webkit-box-shadow: inset ...
) в сочетании с закруглёнными углами (border-radius
), добавляя фон без скруглённых уголков.
Ориентация экрана в Android 3
Ориентация экрана в Android 3У планшетных компьютеров с установленной ОС Android 3.0 и выше (в частности речь идет о Samsung Galaxy Tab) свойство window.orientation
имеет значение 0 в нормальной альбомной ориентации, т.к. именно альбомная ориентация является для таких планшетов основной.