Вы находитесь: Bada Net Ru » Информация » РАЗРАБОТКА FLASH ПРИЛОЖЕНИЙ НА BADA
27-03-2011, 18:08, просмотров: 6600, Раздел: Информация    
Adobe Flash является одной из самых популярных и широко используемых платформ для приложений с графическим интерфейсом, интернет-приложений и игр на мобильных устройствах. Samsung Бада обеспечивает отличную поддержку Flash с FlashLite 3.1.6 (эквивалентно Flash 9, ActionScript 2,0). bada Flash control – это UI управление, которое позволяет программистам Flash приложений легко портировать Flash приложения на bada с минимальными усилиями.

Использование Flash в приложениях bada

Добавление и проигрывание flash в bada простое. Здесь, шаг-за-шагом, всё описано:

Создайте flash управление с вашим .swf файлом
Добавьте его к форме
Нарисуйте и отобразите форму
Установите параметры конфигурации, как требуется (Включите/Выключите звуки, установите режим повторения) и т.д.
Вызовите метод управления flash – Play (), чтобы запустить контент
Вызовите Pause () или Stop (), чтобы приостановить или остановить контент
Образец ниже проигрывает sample.swf . Устанавливая repeatMode (FLASH_REPEAT_NONE), Flash циклически неограничен.
Flash* pFlash = new Flash();
 
Rectangle rect(0,100,480,400);
r = pFlash->Construct(rect, FLASH_STYLE_PLAY_WITHOUT_FOCUS,
                      L"/Res/sample.swf");
/* __pFlash->Construct(Rectangle(10, 10, 450, 500), FLASH_STYLE_PLAY_WITHOUT_FOCUS, L”/Res/sample.swf”, L"http://{Server URL}/{Flash Contents File}"); */
 
r = AddControl(*pFlash);
 
pFlash->SetQuality(FLASH_QUALITY_HIGH);
pFlash->SetRepeatMode(FLASH_REPEAT_NONE);
pFlash->SetSoundEnabled(true);
 
pFlash->AddFlashEventListener(*pListener);
 
Draw();
Show();
 
pFlash->Play();


События на Flash экране прямо получаются в Flash контент. Так, приложения Flash, которые ожидают сенсорные события, не должны волноваться о помещении никакой логики в bada приложении. Это работает без дополнительных усилий. Однако пользователь должен добавить логику, чтобы передать данные между bada приложением (с управлением Flash) и Flash. (например, собирая ввод клавиатуры).

Как Flash взаимодействует с bada Flash приложениями

Связь между Flash и bada приложениями может быть выполнена, используя вызовы fscommand2. Приложение должно следовать Бада API для облегчения передачи.

Реализуйте интерфейс IFlashEventListener в bada приложение, чтобы получить команды, отправленные через fscommad2.

Запросы установки (Set и SetVars) от fscommand2 получены через обработчик событийOnFlashDataReceived ().
Запросы получения (Get and GetVars) от fscommand2 получены через обработчик событий OnFlashDataReturned ()
Чтобы отослать данные назад к Flash, может использоваться SendDataToActionScript ().

См. пример ниже для реализации слушателя события.
void FlashForm::OnFlashDataReturned(const Osp::Ui::Control& source,
                               const Osp::Base::Collection::IList& paramList)
{
       ArrayList   params;
       String* pReceivedMethod;
 
       params.Construct();
       params.AddItems(paramList);
 
       pReceivedMethod = static_cast<String*> (params.GetAt(0));
 
       if(pReceivedMethod->Equals("GetDate",true))
       {
            /*
             * FSCommand2("Get","GetDate", date);
             */
            // Get todayTime info from system
            __pFlash->SendDataToActionScript(todayTime);
       }
       else if(pReceivedMethod->Equals("GetDimension",true))
       {
            /*
             * FSCommand2("GetVars","SetDimension", Dimension);
             */
            // Send the dimension data to flash.
            // dimensionData : "width=value1&height=value2", '&' -> data separator
            dimensionData = "width=" + widthData + "&" + "height=" + heightData;
            __pFlash->SendDataToActionScript(dimensionData);
       }
}


void FlashForm::OnFlashDataReceived(const Osp::Ui::Control& source,
                               const Osp::Base::Collection::IList& paramList)
{
        ArrayList   params;
        String* pReceivedMethod;
        String* pReceivedDataValue;
 
        params.Construct();
        params.AddItems(paramList);
 
        pReceivedMethod    = static_cast<String*> (paramList->GetAt(0));
        pReceivedDataValue = static_cast<String*> (paramList->GetAt(1));
 
       if(pReceivedMethod->Equals("SetDate",true))
       {
             /*
              * FSCommand2("Set","SetDate", date);
              */
             // Get the received date value
            message = *pReceivedDataValue;
       }
       else if(pReceivedMethod->Equals("SetDimension",true))
       {
            /*
             * FSCommand2("SetVars","SetDimension", dimension);
             */
            // Get the received dimension value
            // Message : "width=value1&height=value2", '&' -> data separator
            message = *pReceivedDataValue;
 
      }
}


В вышеупомянутых обработчиках событий Вы можете видеть, что pReceivedMethod содержит методы установки и получения, в то время как pReceivedDataValue содержит данные, передаваемые использованием fscommand2.

Вот пример, который использует SendDataEventToActionScript ().
Вы можете вызвать метод SendDataEventToActionScript () так, чтобы Вы могли отправить ActionEvent Flash.

void FlashForm::OnFlashDataReceived (const Osp::Ui::Control &source,
                                             const Osp::Base::Collection::IList &paramList)
{
      ArrayList   params;
      ArrayList   dataList;
      String* pReceivedMethod;
 
      params.Construct();
      params.AddItems(paramList);
 
      pReceivedMethod = static_cast<String*> (params.GetAt(0));
 
      if(pReceivedMethod->Equals("SendDataEvent",true))
      {
            /* FSCommand2("Set","SendDataEvent", "/");
             * Comment : "/" is nothing to do with an action, dummy parameter.
             *
             * OnMenuItemChanged = new Object();
             * OnMenuItemChanged.onEvent = function(arg1, arg2) {
             *      txtMenu.text = arg1;
             *      txtNum.text  = arg2;
             * };
             * ExtendedEvents.ItemChanged.addListener(OnMenuItemChanged);
             *
             * Usage : ExtendedEvents.[UserDefinedEventHandler].addListener(UserDefineEvent)
             */
 
            // Construct a DataList, sending to flash
 
            // Send data lists to flash
            __pFlash->SendDataEventToActionScript("ItemChanged",dataList);
      }
}


В приведенном выше примере, ItemChanged это событие и DataList содержит данных для передачи, которые могут быть получены через ExtendedEvents. [UserdefinedEventHandler] в Flash.
Обработчик событий вызывается через UserDefineEventHandler.

Flash в bada API

bada API Reference > Namespace List > Osp::Ui > Osp::Ui::Controls > Osp::Ui::Controls::Flash
bada API Reference > Namespace List > Osp::Ui > Osp::Ui::IFlashEventListener
 (голосов: 3)
Добавил: admin
Похожие публикации:
Оставлено комментариев: 2
#1
Написал: dark_side56 (25 апреля 2011 21:08)
Группа: Гости,   Регистрация: --  
тема конечно интересная только вот непонятно, все эти таблицы где их нужно рисовать, можно по подробней?


#2
Написал: admin (2 мая 2011 12:01)
Группа: Администраторы,   Регистрация: 21.11.2010  
bada Flash control - вот UI


--------------------


© 2007-2010 Администрация не несёт ответственность за контент. Вся информация предоставлена только в ознакомительных целях.
Разработка Atamovich