Buttonmode для компонента Label

После долгих мучений и попыток установить курсор в виде пальца над лейблом – родилось такое решение:

useHandCursor = true;
mouseChildren = false;
buttonMode = true;

По-другому оно никак не хотело работать. Мудотатство.

Поддержка сжатия GZip Actionscript 3.0, Adobe AIR

Здравствуйте, уважаемые любители этого интересного. Сегодня мы разберем вопрос поддержки сжатия GZip флеш-плеером.
Дело в том, что при работе с большими объемами данных (приём-пересылка) бывает необходимо архивировать данные сервером при пересылке клиенту. На уровне HTML поддержка GZip браузерами реализована на 5 баллов.

Как это работает?
Клиент запрашивает у сервера данные. К примеру, сервер решил, что текстовых данных аж 2 мегабайта. Пока вы дождетесь пересылки их от сервера клиенту – яйца седыми станут. Поэтому сервер упаковывает их в формат GZip, пересылает клиенту 30 килобайт данных, а клиент за секунду разархивирует их в нужные нам 2 мегабайта текстовой информации.

Сразу оговорюсь как это работает в различных условиях.
Flash IDE – никак. Нужно подключать сторонние библиотеки для чтения GZip формата.
И постоянно слать заголовок ‘Accept-Encoding’:'gzip’. Принимаемые данные будут нечитаемыми.

При публикации и просмотре AIR или EXE файла – все работает на ура. Но! Длина принимаемых данных определяется неверно. То есть фактически длина принятых данных во много раз превышает общую длину данных. Поэтому в обработчике URLLoaderа ProgressEvent.PROGRESS можно получить и 400 и 1000% принимаемых данных.

Как это исправить? Серверу необходимо отправлять клиенту Air дополнительный заголовок.
К примеру назовём его: public static const AIR_CONTENT_LENGTH:String = ‘Air-Content-Length’;

Затем посмотрим что приходит от сервера:

myURLLoader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, onHTTPResponseStatus);
private var total_response_length:Number = 0;

//получаем заголовки сервера
private function onHTTPResponseStatus(e:HTTPStatusEvent):void
{
  var isHeaderPresent:Boolean = false;
    
  for (var i:int = 0; i < HTTPStatusEvent(e).responseHeaders.length; i++)
  {
    //правильный подсчет длины респонза сервера
    if (HTTPStatusEvent(e).responseHeaders[i]['name'] == AIR_CONTENT_LENGTH)
    {
      total_response_length = Number(HTTPStatusEvent(e).responseHeaders[i]['value']);    isHeaderPresent = true;
    }
  }
  if (!isHeaderPresent)
  {
    total_response_length = 0;
  }
}

Теперь смотрим евент процесса загрузки:

//процент загрузки
public var persentage:int = 0;
  
private function onRequestProgress(e:ProgressEvent):void
{
  persentage = (total_response_length == 0)? int(e.bytesLoaded / e.bytesTotal * 100) : int(e.bytesLoaded / total_response_length * 100);
  var bt_total:Number = (total_response_length == 0) ? e.bytesTotal : total_response_length;
}

Короче. Есть хэдэр – берём общее значение длины ответа из него, нет хэдэра – берется стандартный Content-Length, передаваемый сервером.

Запись файла на диск через Adobe AIR и ByteArray в любой кодировке

Случается так, что файл нужно записать на диск в кодировке, отличной от кодировки проекта. Поскольку нормальным в РФ считается клепать сайты и ПО в UTF-8 – то работа с документами MS Office (excel, csv) становится проблематичным в виду того, что Excel понимает UTF-8 в виде кракозябр.

private var fileRef:FileReference;
    
//выбрать файл
private function selectHndl(e:Event = null):void
{
  var export_str:String = 'Здрасте-мордасте )) UTF-8 -> CP1251';
    fileRef = new FileReference();
            
  var ba:ByteArray = new ByteArray();
  ba.writeMultiByte(export_str, 'x-cp1251');
            
  fileRef.save(ba, "file.csv");
}


* This source code was highlighted with Source Code Highlighter.

Готово.

Здравствуй, Adobe AIR!

Что-то я давно не писал по поводу и без него. Объявляю открытие новой рубрики моего блога – Adobe AIR! Прошу любить и жаловать. В нем буду выкладывать то, что может быть интересно другим людям по этой категории, ибо опыта по ней набрался изрядно и есть, что поведать.

Adobe AIR, хеллоу!

Новый смс-чат

Недорогой СМС-чат, смс-знакомства, смс-общение

Отправляй vsend текст сообщения на короткий номер 3533 (стоимость сообщения ~ 10 рублей).
В первом сообщении после слова vsend укажите имя, возраст и ваш пол.
Служба поддержки.

Скрипт для смс-шлюза для биллинга smsrent.ru

Цитата с блога партнёра:

Ссылка на оригинал.

Не так давно, для одного сайта, мне пришлось писать скрипт скачивания файлов с за смс, в качестве платформы для смс-биллинга использовался smsrent.ru. А для реализации задуманного, был выбран тип проекта – смс-шлюз, при использовании смс-шлюза вся логика находится на вашем сайте. Опишу, что необходимо сделать для подобного решения на вашем сайте.

После выбора проекта, необходимо настроить его, на странице настроек указать: адрес url-обработчика смс запросов (допустим http://www.yoursite/smsrenturl.php), выбрать метод запроса POST, ввести секретный ключ и поставить переключатель в положение «md5 подпись данных ключом (высокая степень защиты». См. скриншот.

Теперь подробнее об url-обработчике, его суть и параметры, передаваемые ему описаны в руководстве разработчика. Здесь я приведу готовый обработчик.

Всё это можно найти на сайте http://www.usualblog.ru/2-script-sms-shluza-dlya-smsrent.html

smsrazvodu.net – все об смс-мошенниках.

Есть на просторах интернетов замечательный сайт – http://smsrazvodu.net.

В нём раскрывается вся тайна сервисов определения места положения абонентов по номеру телефона, сервисов контролеров телефонов, описываются все виды смс-мошенничества и смс-развода.

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

http://smsrazvodu.net – всё об смс-мошенниках.

Хабравиджет отслеживания кармы и рейтинга.

Здравствуйте, уважаемые любители «этого интересного». Давно не писал сюда, решил обновиться. Пришла идея в голову написать небольшой виджет, который висит в трее и скучает, пока ваши данные в профиле Хабрахабра не изменятся.
Читать далее…

Экспорт статистики в RSS от SMSRENT.ru!

Сообщаем Вам, что в раздел статистика добавлена новая возможность  - Экспорт статистики в RSS.

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

Получить персональную ссылку на канал статистики Ваших проектов, можно в разделе «Статистика».

Новые номера Украины. Обновление HTTP-протокола платформы.

Рады поделиться с вами несколькими приятными новостями. Сегодня подключены три новых коротких номера для операторов Украины – 7136, 7137 и 7138, стоимостью 6, 12.5 и 25 UAH соответственно.
Читать далее…

Follow

Get every new post delivered to your Inbox.