Потоковое видео и Flash Lite 2

Одна из наиболее интересных вещей во Flash Lite 2 — динамическая загрузка мультимедиа и их проигрывание используя кодеки устройства. Это значит что используя этот простой код вы можете проиграть 3gp файл:
myVideo.play(«comtaste.3gp»); //myVideo имя экземпляра
Я пробовал загрузить 3gp video файл удаленно, используя протокол http, но безуспешно:
myVideo.play(«http://www.comtaste.com/comtaste.3gp»); //у меня не работает ((
Прочитав немного об этом, я понял что все-таки можно это сделать. Вот что для этого нужно:play (Video.play method)
public play() : Boolean

Вызов этого метода открывает видео и начинает его проигрывать

Доступность: ActionScript 2.0; Flash Lite 2.0

Пример :

video1.play( «http://www.macromedia.com/samples/videos/clock.3gp» );

Загрузка видео в Flash Lite 2

Это очень просто. Если вы хотите загрузить видео в приложение Flash Lite 2 вы просто должны создать видео в вашей библиотеке, перетащить экземпляр на сцену и написать следующий код:myVideo.play(«comtaste.3gp»); //myVideo имя экземпляра
myVideo.onStatus = function (obj:Object) {
trace(obj.code)
};

Открыть файл через FlashLite

Сегодня я начал проводить некоторые тесты, для запуска других прилохений из Flash Lite. Для этих операций вам необходимо использовать функцию fscommand(), которая доступна для FlashLite 1.1 :fscommand(«Launch», «application-path, arg1, arg2,…, argn»)

В моем FlashLite приложении мне нужно открыть файл на устройстве, используя специальную программу. Можно использовать следующую комманду:

fscommand(«launch», «drive:\\apps\\myApp, myVideo.3gp»);

Анимация “One frame” для приложений FlashLite

Мне очень нравится иметь главную сцену в моих Flash и Flash Lite приложениях простой и содержащей всего пару кадров. Я предпочитию использовать и держать анимацию в мувиклипах, чем на главной сцене (root timeline), используя комманду tellTarget(«../»){gotoAndPlay(«myFrame»);} Как это делается:

1. Создаейте новый файл Flash lite

2. Выберите первый кадр на главной сцене и откройте панель ActionScript

3. Просто наберине комманду stop();

4. Создайте мувиклип и назовите его animation

5. Войдите в мувик и создайте анимацию

6. В конце анимации откройте панель ActionScript и напишите следующий код: tellTarget(«../»){gotoAndPlay(+1);} gotoAndStop(1);

7. Теперь можете нажать publish и протестировать ваш мувик. Анимация One Frame работает и вы имеете всего один кадр на вашей главной сцене!!

Лутшее решение для хидеров Flash Lite

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

  • проверить уровень сигнала, используя fscommand2(«GetSignalLevel»)
  • проверить статус баттареи — fscommand2(«GetBatteryLevel»)
  • проверить дату и время — fscommand2(«GetDateDay»)

Это очень простые функции, но я видел много аппликаций, которые не обращают внимание на столь важные мелочи. Во время навигации по приложению эти параметры должны изменятся и реагировать на текущие параметры телефона. Реализуется это довольно таки просто.

Headermc Я создал header movie clip, который будет отображать статус батареи, уровень сигнала а также расположил 2 динамических поля (одно для даты, другое для времени). Эти клипы занимают 3 фрейма на линейке.
На первом кадре пишем код для проверки уровня сигнала, батареи, даты и времени:

//код на 1 кадре header MC:
stop();
battery = fscommand2(‘GetBatteryLevel’);
signal = fscommand2(‘GetSignalLevel’);
tellTarget («batt_level_mc») {
gotoAndStop(Number(../:battery));
}
tellTarget («sign_level_mc») {
gotoAndStop(Number(../:signal));
}
Headermc_2
//время
hour = fscommand2(«GetTimeHours»);
if (Number(hour <= 9)) {
hour = "0" add hour;
}
minutes = fscommand2("GetTimeMinutes");
if (Number(minutes <= 9)) {
minutes = "0" add minutes;
}
time = hour add ":" add minutes;
//дата
today = fscommand2("GetDateDay");
if (Number(today <= 9)) {
today = "0" add today;
}
thisMonth = fscommand2("GetDateMonth");
if (Number(thisMonth <= 9)) {
Headermc_timeline

thisMonth = «0» add thisMonth;
}
thisYear = fscommand2(«GetDateYear»);
when = today add «.» add ThisMonth add «.» add thisYear;
set(«when», when);
set(«time», time);

На 3 кадре Header MC вбиваем просто: gotoAndPlay(1)

Если я захочу проверить дату, к примеру, достаточно написать что то вроде на главном таймлайне:

tellTarget («header_mc») {
gotoAndPlay(2);
}

Все просто :)

Flash Lite классы, примеры

Вот некоторые примеры классов:

Google Local — карты на вашем телефоне

Google реализовал Google Local — сервис для ваших телефонов, взаимодействующий с Google Map. Пользовательский интерфейс очень простой и дружелюбный — используется всего несколько кнопок, с помощью которых вы можете сделать много вещей.GooglelocalСовмещая в себе карты, снимки со спутника, Google Local for mobile устанавливается бесплатно и поможет вам запросто найти то что вам нужно в городе и в стрене — прямо на вашем телефоне.Детальное направление: Где вы планируете гулять или ехать — ваш путь будет показан на телефоне шаг за шагом.

интегрированный поиск: Контактная информация и точное расположение интегрированное в карту на вашем телефоне.

Простое управление: интерактивные, двигающиеся карты, позволяющие увеличивать и уменьшать изображетие, так что вы можете легко ориентироватся в окружающем вас месте.

Снимки со спутника: Взгляд с птичьего полета на место где вы находитесь.

Я не испытывал это на своем телефоне, но я читав в блоге MobileBlog.it что это работает давольно таки хорошо!

Циклы повторений для FlashLite приложений

В эти дни я разрабатывал приложения на FlashLite и столкнулся во многих местах с использованием циклов.
Я не думал, что имеется большое различие между циклами for и while, но из любопытства я решил сделать небольшие тесты, чтобы понять, какой же из них лучше использовать для лучшего быстродействия.
Вот три типа повторяющихся циклов:

  1. Цикл For: for (y=0; y<100; y++) {
    x++;
    }
  2. Цикл While: i = 0;
    while(i < 10) {
    trace ("i = " add ++i);
    }
  3. Цикл Do … while: i = 0;
    do {i++;
    } while (i<10);

Тест проводился на двух мобильных телефонах: Nokia 6680 and Nokia 6600.
Я заметил, что цикл While работает быстрее на этих моделях, но скорее всего это зависит от быстродействия CPU чем от циклов…..
В любом случае, я решил использовать цикл while :)

Тестирование нагрузки на процессор в приложениях Flash Lite

Вот одна из важных вещей, которую разработчики упустили в Flash 8 Mobile Emulator. Во время презентации MAX Bill Perry’s показал новую возможность управления памяти и загрузки процессора в телефоне, которая поможет разработчикам максимально адаптировать и оптимизировать приложение во время разработки. Скрин ниже говорит сам за себя. К сожалению эта возможность появится только с выходом новой версии Flash.
Flashlitememory

Как использовать call() для запуска скриптов на Flash Lite

Вот небольшой пример:
Метод call() вызывает скрипт с запрашиваемого фрейма без перемещения проигрываемой головки на этот фрейм. Создайте movieclip в библиотеке и перетяните его на Timeline. Дайте мувику имя myMovie_mc. Создайте 3 фрейма с двумя метками: first_lbl и second_lbl. (первый фрейм оставьте пустым)

Теперь напишите простой скрипт на каждом из двух фреймов (достаточно использовать команду trace()) и не забывайте про stop() на каждом из них. Чтобы вызвать скрипт из главной сцены вы можете просто написать в первом кадре:

call(«myMovie_mc:first_lbl»);
stop();

Код для мувиклипа:

on (keyPress «») {
call(«myMovie_mc:second_lbl»);
}
on (keyPress «») {
call(«myMovie_mc:first_lbl»);
}

Код будет вызван.

Метод call()позволяет лучше организовать главный таймлайн.

Страница 12 из 14« Первая...1011121314