package ru.mixailflash
{
import flash.net.URLRequest;
import flash.net.navigateToURL;
public class SocialShare extends Object{
public static var URL:String = "http//yoursite.ru/";
public static var IMAGE:String = "http//yoursite.ru/image.png";
public static var MESSAGE:String = "message for VK and FB";
public static var TW_MESSAGE:String = "message for twitter";
public static var TITLE:String = "Title for message";
private static var urlVK:String = "http://vkontakte.ru/share.php";
private static var urlTW:String = "http://twitter.com/home?status=";
private static var urlFB:String = "http://www.facebook.com/sharer.php?s=100&p[title]=";
public static function shareTwitter():void{
var url:String = urlTW + TW_MESSAGE + " " + encodeURI(URL)
navigateToURL(new URLRequest(url), "_blank" );
}
public static function shareVkontakte():void{
var url:String = urlVK + "?url=" + encodeURI(URL) + "&title="
url = url.concat(encodeURI(TITLE) + "&image="+IMAGE);
url = url.concat("&description=" + encodeURI(MESSAGE) + "&noparse=true");
navigateToURL(new URLRequest(url), "_blank");
}
public static function shareFacebook():void{
var url:String = urlFB+TITLE+"&p[summary]="+MESSAGE;
url = url.concat("&p[url]="+URL+"&p[images][0]="+IMAGE);
navigateToURL(new URLRequest(url), "_blank");
}
}
}
Об IT и менеджменте этой сфере, а так же о различных технологиях и фишках ну и уроки...
20 декабря 2012
Постинг в социалки из actionscript
07 ноября 2012
Расширение Array в actionscript
30 октября 2012
Документация actionscript 3
24 октября 2012
Перезапуск swf
10 мая 2012
Сложные решения или autocad в сети...
flash исходники
03 февраля 2012
Ответ на вопрос читателя или с чего начать изучение...
02 февраля 2012
socialAPI или как делать игру для всех социалок
Сейчас очень часто flash упоминается как средство разработки игр для социальных сетей. Но социальных сетей очень много и у них совершенно разный api для работы с инструментами самой социальной сети. Не так давно я задумался над тем, что было бы замечательно сделать библиотеку которая бы могла помочь с этом вопросом. И так как у меня сейчас есть свободное время я решил этим заняться.
И я хочу продемонстрировать первую версию для работы с социальными сетями для actionscript 3.0, под названием socialAPI.
2). Авторизация в социальной сети.
- для вконтакте проверка настроек доступа.
3). Получение информации о пользователе.
4). Получение списка друзей и информации о них.
5). Открытие окна приглашения друзей.
И так что нам для этого будет необходимо:
- Скачаем саму библиотеку http://mixailflash.assembla.me и напишем код.
- После этого выложим наше приложение в социальные сети и посмотрим что все работает.
public function main()
// получаем flashVars
// add specific default settings for mm;
parametrs.mm={DOMFlashId:'flash-app',
privateKey:'a284a33469d7e982d344f4db15baaf7c'};
//rear of the name of social networks;
ConnectionApi.SET_SOCIAL_NAME(parametrs);
//create an instance of the social network;
// создаем экземпляр объекта для работы с социальной сетью
// добавляем слушатель успешной авторизации
// вызываем метод авторизации
// отписываемся от прослушивания события
connectionAPI.addEventListener(ConnectionApi.USER_COMPLITE, handlerUser);
connectionAPI.askUserInfo();
connectionAPI.askFriendsList();
//выводим информацию о друзьях
// показываем окно приглашения друзей;
В следующей версии я постараюсь подключить facebook.com и расширить функционал имеющихся социальный сетей.
Жду предложений по развитию функционала.
26 января 2012
Компиляция с параметрами!
Доброго времени суток.
Столкнулся с проблемой, когда необходимо собирать один и тот же проект с разными настройками.
Есть несколько решений:
- сделать переменную, которую необходимо будет постоянно менять.
- использовать параметр -define=CONFIG в mxmlc
Для его реализации достаточно в коде программы написать условие выбора:
{
import flash.display.Sprite;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
if(CONFIG::COMPILE_FOR_AIR)
{
trace("This line of code will be compiled when COMPILE_FOR_AIR=true.");
}
else
{
trace("This line of code will be compiled when COMPILE_FOR_AIR=false.");
}
}
}
}
а при компиляции добавить новый параметр -define=CONFIG:
вот и все, теперь при запуске программы, она смотрит с каким входным параметром ее скомпилировали и в зависимости от этого исполняет себя.
22 января 2012
fdb или как тестировать swf без графического интерфейса
17 января 2012
Я открываю канал на youtube
Доброго времени суток. Это mixailflash и я открываю свой канал на youtube посвященный флешу и всему что с ним связанно.
В первом выпуске я буду рассказывать о том что такое flex sdk, как его поставить на компьютер. А потом с его помощью команды mxmlc скомпилировать swf файл без какой либо графической оболочки.
После того как загрузка завершилась перейдем в finder и кликнем на архиве чтобы он распаковался. После завершения распаковки зайдем в папку с flex sdk и посмотрим сколько тут разных папок и файликов. В следующих выпусках я подробно рассмотрю для чего они нужны и как именно с ними работать. Теперь нам надо проверить, не стоит ли у нас уже flex sdk, и для этого нам надо открыть терминал и ввести команду:
это команда выводит все прописанные в нашей системе пути для сборок и всякого такого. Как мы можем увидеть никаких путей на flex sdk у нас сейчас не прописано. Теперь откроем файловый менеджер. Я в частность пользуюсь mc. Каким будете пользоваться, решать вам. Здесь нам надо найти директорию Library зайти в нее и создать папку flex. И после ее создания зайдем в эту папку, в другом окне перейдем в директорию Download (Загрузки) и скопируем папку с flex sdk в только что созданную папку flex.Вернемся в терминал и займемся пропитыванием путей на наш sdk.
Для это в любом текстовом редакторе откроем файл ~/.profile и здесь пропишем пути до нашей библиотеки
export PATH=/Library/flex/flex_sdk_4.6.0.23201B/bin:$PATH
Теперь нам необходимо что бы прописанные нами изменения вступили в силу. Мы работаем не в Windows поэтому машину перегружать не надо. Но вот терминал перезапустим и как мы увидим введя опять команду
что прописанные изменения применены.
Вызовем команду:
если мы до этого сделали все правильно то должно появиться несколько строк содержащих знаки вопросов. Не пугайтесь. Это исправим. Нам надо зайти в настройки терминала и во вкладке дополнительно нам надо поменять кодировки текста на «Кириллическую (Mac OS)» Теперь закроем настройки в при вызове команды mxmlc появится нормальный читабельный текст. Самое сложное мы уже осилили, теперь давай те перейдем непосредственно к написанию нашего первого приложения на actionscript а именно helloWorld:
{
import flash.display.Sprite;
import flash.text.TextField;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
var _text:TextField = new TextField();
_text.text = 'Hello World';
addChild(_text);
}
}
}
Как мы видим в директории Documents у нас лежит файл HelloWorld.as но нет файла HelloWorld.swf.
Создайте файл HelloWorld.as и напишите простой текст программы.
Сохраните его и вернитесь опять в терминал.
Выполним команду:
после этого у нас создался файл HelloWorld.swf. Давай те его запустим. Как мы убедились все работает. Но когда мы с вами компилировали, компилятор нам сообщил о том кто у нас не прописанны какие то библиотеки.
Для исправления этого перейдем в файл:
и найдем там строку
и поменяем false на true, вот так:
теперь компилятор у нас ругаться больше не будет.
Спасибо за внимание. Смотрите видео уроки и подписывайтесь на канал!
12 января 2012
twitter и actionscript
И для этого практически ничего не нужно, сам я птратил на это всего 10 минут, о есл поколдовать то может получиться очень даже красиво и функционально)))
И так первое что надо сделать это скачать готовую библиотеку, документации по которой я правда не нашел, поэтому пришлось сугубо перебором искать решение.
После этого достаточно подключить ее в наш проект и паписать несколько строк кода:
private function init():void
{
twitte = new Twitter(); // инициализируем сам твиттер;
// ставим прослушиватель события загрузки сообщений;
twitte.addEventListener(TwitterEvent.ON_USER_TIMELINE_RESULT, out);
twitte.loadUserTimeline('mixailc'); // задаем ник, чьи сообщения будем читать;
// внимание, надо проверить чтобы аккаунт был публичным;
}
// а здесь выводим те сообщения которые получили;
private function out(event:TwitterEvent):void
{
for(var i:int = 0; i < event.data.length; i++)
{
trace (event.data[i]['id']); // номер сообщения;
trace (event.data[i]['text']); // текст сообщения;
trace (event.data[i]['user']['name']); // имя автора твитта;
//здесь все должны быть созданны только тем кого мы
//читаем то есть mixail (это не ник, а имено имя);
}
}
Как мы видим ничего сложного, если еще поиграться и поковырять данную библиотеку, а потом нарисовать красивый интерфейс можно использовать и гордиться собой)))
23 ноября 2011
Что выбрать? Number, int, uint
В actionscript представлены три основных типа числовых значений. Самое интересное, что многие флешеры не совсем понимают разницу между ними:
Number - число с плавающей точкой, с размером в 64 бита, на целую часть может приходиться до 53 бит;
int - 32-разрядное целое число со знаком (значения -2147483648 (-2 в степени 31) до 2147483647 (2 в степени 31 -1));
uint - 32-разрядное число без знака (значения 0 до 4294967295 (2 в степени 32 - 1));
При инициализации int и uint значение переменной равно 0. То есть можно писать так:
int x;
вместо:
int x = 0;
а вот Number при инициализации дает только null.
Для счетчиков или каких то целых действий лучше использовать uint или int, это будет сокращать расход памяти в два раза.
Так же если переменная будет иметь тип int все ее значения будут целочисленными, даже после такого:
int/*uint*/ x = 1/2;
Но будьте осторожны с использованием uint в счетчиках, он не может быть меньше 0:
uint x;
while( x >= 0)
{
x--;
} //этот цикл никогда не завершится;
Также почему то принять для хранения цветов с альфа каналом (0xFFFFFFFF) использоваться Number, потому что не хватает значений у int, но зато у uint вполне хватает диапазона, для таких чисел.
22 ноября 2011
Отладка на лету
При написании проекта необходимо выводить некоторую информацию. Обычно, когда пишешь в IDE то для этого вполне хватает обычного trace(), но вот когда приложение уже выложено в интернет и тестируется работа например с социальным api то этого уже не достаточно.
Для этих целей можно воспользоваться дебагером arthropod, очень удобный и простой способ на лету выводить сообщения из вашего приложения.
На картинке изображен внешний вид данного приложения.
Создан он с использованием adobe air, что делает его кросплатформенным.
Для установки достаточно скачать и установить (если нет adobe air то можно его установить отсюда).
Так же необходимо скачать класс подключения (само приложение сообщит хотели вы этого или нет).
import com.carlcalderon.arthropod.Debug;
// а потом можно уже использовать
Debug.log ('mesage', 0xff0000);
//Второй параметр задает цвет сообщения.
Причем данное приложение может выводить не только текст но и картинки:
Debug.bitmap(someBitmap);
Приятного тестирование)))
P.S. установка air для ubuntu:
wget http://airdownload.adobe.com/air/lin/download/latest/AdobeAIRInstaller.bin
chmod +x ./AdobeAIRInstaller.bin
sudo ./AdobeAIRInstaller.bin
20 ноября 2011
Утечка памяти в actionscript
1. Случайное создание объектов (недосмотр);
2. Если графика была создана с помощью flash cs, и графика располагалась на stage то эти объекты плодятся (как не парадоксально).
Самое элементарное что можно сделать это просто считать сколько графических объектов у нас лежит...
Теперь мы можем видеть растет ли количество, если да, то осталось посмотреть в коде откуда у нас утечка)))
Если есть предложения, то буду рад услышать ваши предложения...
17 ноября 2011
Подгоняем элементы на живую
Часто возникает необходимость при верстке сложного интерфейса подгонять некоторые часть графики относительно друг друга, но иногда приходится это делать по-пиксельно, что приводит к большому количеству компиляций, а следовательно к большой трате времени.
Но и это еще не все, сделаем возможность передавать в наш класс графического объекта который можно будет двигать с помощью клавиш, что приведет к уменьшению времени подгонки графики.
FPSCounter.as:
//language: actionscript 3.0
//author: mixailflash
//site: mixailflash.livejournal.com
package
public class FPSCounter extends Sprite
if (key == 113) // проверяем нажата ли кнопка F2
// комманды для того чтобы двигать переданный графический объект
str = str.concat('x: '+ event.stageX + ' y: ' + event.stageY);
if (DRAG)
Main.as:
//language: actionscript 3.0
//author: mixailflash
//site: mixailflash.livejournal.com
package
Теперь мы можем перемещать объекты и смотреть их новые координаты, а так же смотреть координаты других элементов.
Actionscript IDE
Хочу рассказать об IDE для actionscript с которыми я работал и высказать свое мнение по поводу них.
Рассмотрим следующие распространённые IDE для actionscript Adobe Flash Builder, IntelliJ IDEA и два плагина под eclipse AXDT и FDT.
Начнем по порядку Adobe Flash Builder: красивый приятный дизайн, удобный но работает только под Windows и Mac OS, а так же стоимость почти 24 тысячи рублей (примерно 800 долларов).
IntelliJ IDEA: не очень красивый, настраивается ручками работает под всеми платформами, стоить 499 долларов.
FDT: также работает под всем но стоит 599 долларов.
AXDT: бесплатный работает под всем.
Из всех этих IDE я рекомендую AXDT, так как он бесплатный и является плагином eclipse работает под всеми платформами.
16 ноября 2011
Считаем ресурсы
Решил написать небольшой класс который выводит данные два параметра, после того как нажать " ` ", выводит fps с точностью до первого знака после запятой, и количество памяти в kb.
//ставим прослушиватель на нажатия кнопок клавиатуры
// если еще не нажимали и текст не находится в области видимости
//считаем fps и memory
int(System.totalMemory/1024) + 'kb'+ " memory";
Теперь по нажатию на клавишу на клавиатуре, мы можем получить доступ к этим важным для нас данным.
Приятного тестирования и работы)
15 ноября 2011
Секреты растра...
/*
spr.cacheAsBitmap = true;
//если потом надо будет его изменить то:
Так мы немного снизили нагрузку на процессор.
14 ноября 2011
Прелоадер как во FlashDevelop
// Основной класс программы
// Точка входа, после того как загрузился весь ролик
// Отключение обслуживания прелоадера
//Текст для отслеживания процента загрузки
//так будем проверять загрузилось или нет,
//так будем смотреть сколько загрузилось
//так будем смотреть ошибки
// Текст о состоянии загрузки выводится на экран
// Метод, вызываемый при изменении количества загруженных байт
//сокрытие текста и вывод главного класс в нашем случае Main
Теперь осталось только придумать сам прелоадер, а точнее как он будет выглядеть и изменяться, а вся техническая сторона уже готова...