Архив рубрики: FlashLite

Анимация “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 классы, примеры

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

Циклы повторений для 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()позволяет лучше организовать главный таймлайн.

Уровень заряда баттареи

Как мне узнать и отобразить уровень заряда батарей при помощи FlashLite ?BatteryДля того чтобы это сделать вам необходимо использовать команду fscommand2. Эта функция позволяет плееру получать данные от устройства.batteryLevel = fscommand2(«GetBatteryLevel»);Переменная batteryLevel содержит числовое значение возвращаемое в рамках он 0 до максимального заряда. Если возвращается -1 значит команда GetBatteryLevel не поддерживается устройством!

maxBatteryLevel = fscommand2(«GetMaxBatteryLevel»);

Переменная maxBatteryLevel содержит значение максимально возможного заряда.
Если возвращается -1 команда GetBatteryLevel function не поддерживается устройством!

и так, вы можете дать несколько сообщений пользователю :

if(1==batteryLevel)
{
// что угодно
trace(«внимание — батарея садится»);

}

Представте movieclip battery_mc, где вы графически отображаете уровень заряда; используйте функцию if чтобы управлять проигрыванием в зависимости от уровня заряда:

tellTarget («battery_mc») {
gotoAndStop(/:batteryLevel + 1 ); // начало фрейма 1
}

Загрузить flashlite_header.fla

Каково будующее Flashlite?

На известном Yahoo FlashLite group проводился опрос:Какое будущее ждет Macromedia Flashlite ?К моему большому удивлению люди предпочитают использовать FlashLite для разработки приложений, чем для разработки игр!
Вот результаты опроса:- Развлечения (игры, screensaver и т.д) —> 30.00%
— Приложения —> 70.00%

Flash Lite Player — коды ошибок

Я обнаружил, что Macromedia Flash Lite Technotes небольшой но полезный ресурс на котором опубликованы возможные коды ошибок, возникающие во время разработки на flash lite. Это напоминание для меня. :)

Error Code Error
1 Out of memory
2 Stack limit reached
3 Corrupt SWF Data
4 ActionScript stuck
5 Infinite AS loop
6 Bad JPEG data
7 Bad sound data
8 Can not find host
9 ActionScript error
10 URL too long

Библия пользователя разработчика Flash Lite 1.1

Этоl Macromedia Flash 4 User Guide. Это первый шаг который необходимо сделать для flashlite 1.1 разработчика. Версия на английском языке, но наиболее необходимые главы вы можете прочесть:

Logofl4_1
CHAPTER 8
Using Symbols and Instances pg.141CHAPTER 10
Creating Interactive Movies 173

CHAPTER 11
Creating Interface Elements 205

CHAPTER 12
Adding Sound 213

Файл лежит на сайте FlashLite Group.

Страница 9 из 10« Первая...678910