自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

構(gòu)建Adobe AIR for TV本機(jī)擴(kuò)展

移動(dòng)開發(fā)
本教程向您使用簡單的代碼為構(gòu)建Adobe AIR for TV本機(jī)擴(kuò)展。除了向您展示在所有原生擴(kuò)展(AIR、ActionScript 3和Flash Builder)中通用的代碼和技能,本教程還介紹了Adobe AIR for TV原生代碼。

當(dāng)您構(gòu)建 AIR for TV 本機(jī)擴(kuò)展時(shí),您將構(gòu)建兩個(gè)版本的擴(kuò)展:

  • 設(shè)備綁定擴(kuò)展。
  • 存根或模擬器擴(kuò)展。

設(shè)備綁定擴(kuò)展包括:

  • 通常使用 C 或 C++ 編寫的本機(jī)實(shí)現(xiàn)。
  • 調(diào)用該本機(jī)實(shí)現(xiàn)的函數(shù)的實(shí)際 ActionScript 實(shí)現(xiàn)。
  • 存根或模擬器擴(kuò)展是僅包含 ActionScript 的實(shí)現(xiàn)。

設(shè)備綁定擴(kuò)展和存根擴(kuò)展

當(dāng)您為 Adobe® AIR® for TV 設(shè)備編寫本機(jī)擴(kuò)展時(shí),您需要?jiǎng)?chuàng)建該擴(kuò)展的兩個(gè)變體:

  • 設(shè)備綁定擴(kuò)展,也稱為實(shí)際擴(kuò)展。
  • 存根擴(kuò)展。

此外,您還可以根據(jù)情況提供第三個(gè)變體:模擬器擴(kuò)展。

設(shè)備綁定擴(kuò)展

設(shè)備綁定擴(kuò)展是設(shè)備上安裝的變體。ActionScript 端調(diào)用本機(jī)實(shí)現(xiàn)的函數(shù)。您生成此實(shí)際 ActionScript 實(shí)現(xiàn)以及本機(jī)實(shí)現(xiàn),并創(chuàng)建一個(gè) ZIP 文件。設(shè)備制造商將此文件解壓縮到設(shè)備上的特定目錄中。

存根擴(kuò)展

存根本機(jī)擴(kuò)展具有與實(shí)際 ActionScript 實(shí)現(xiàn)相同的 ActionScript 接口,但是 ActionScript 方法不做任何事情。存根擴(kuò)展是僅包含 ActionScript 的擴(kuò)展;它沒有本機(jī)實(shí)現(xiàn)。當(dāng)您生成存根 ActionScript 實(shí)現(xiàn)時(shí),您將創(chuàng)建一個(gè) ANE 文件。

AIR 應(yīng)用程序開發(fā)人員使用此 ANE 文件達(dá)到三個(gè)目的:

  1. 編譯使用本機(jī)擴(kuò)展的 AIR 應(yīng)用程序。
  2. 在臺式計(jì)算機(jī)而不是目標(biāo)設(shè)備上運(yùn)行 AIR 應(yīng)用程序。
  3. 包括在 AIR 應(yīng)用程序軟件包中。

模擬器擴(kuò)展

可選的第三種變體是模擬器擴(kuò)展。此實(shí)現(xiàn)也具有與實(shí)際 ActionScript 實(shí)現(xiàn)相同的 ActionScript 接口。不過,它的 ActionScript 方法在 ActionScript 中模擬擴(kuò)展的行為。像存根擴(kuò)展一樣,模擬器擴(kuò)展是僅包含 ActionScript 的擴(kuò)展;它沒有本機(jī)實(shí)現(xiàn)。當(dāng)您生成模擬器 ActionScript 實(shí)現(xiàn)時(shí),您將創(chuàng)建一個(gè) ANE 文件。

AIR 應(yīng)用程序開發(fā)人員可以使用模擬器擴(kuò)展 ANE 文件編譯他們的應(yīng)用程序。與使用存根擴(kuò)展進(jìn)行測試相比,他們可以使用此 ANE 文件在臺式計(jì)算機(jī)上更加徹底地測試應(yīng)用程序。他們還可以將模擬器擴(kuò)展包括在 AIR 應(yīng)用程序軟件包中。

注: 您可以創(chuàng)建一個(gè)模擬器擴(kuò)展,作為存根擴(kuò)展的替代品或輔助品。

設(shè)備綁定擴(kuò)展、存根擴(kuò)展和模擬器擴(kuò)展的使用

AIR 應(yīng)用程序開發(fā)人員使用存根和模擬器擴(kuò)展完成下列工作:

  • 使用存根擴(kuò)展或模擬器擴(kuò)展編譯 AIR 應(yīng)用程序。
  • 使用存根擴(kuò)展或模擬器擴(kuò)展在臺式計(jì)算機(jī)上測試應(yīng)用程序。
  • 將存根擴(kuò)展或模擬器擴(kuò)展打包到它們的可分發(fā) AIR 應(yīng)用程序中。

注: 如果您為 AIR 應(yīng)用程序開發(fā)人員同時(shí)提供了存根和模擬器擴(kuò)展,請告訴他們將哪個(gè)擴(kuò)展與他們的可分發(fā)應(yīng)用程序一起打包。

當(dāng) AIR 應(yīng)用程序在設(shè)備上運(yùn)行時(shí),AIR for TV 將執(zhí)行下列操作:

  1. 在設(shè)備上尋找相應(yīng)的設(shè)備綁定(實(shí)際)擴(kuò)展。
  2. 如果該擴(kuò)展存在,則 AIR for TV 會加載它以供 AIR 應(yīng)用程序使用。
  3. 如果該擴(kuò)展不存在,AIR for TV 將改為加載與應(yīng)用程序一起打包的存根或模擬器擴(kuò)展。

為擴(kuò)展創(chuàng)建簽名證書

您可以選擇對本機(jī)擴(kuò)展進(jìn)行數(shù)字簽名。對擴(kuò)展簽名是可選的。

默認(rèn)情況下,AIR for TV 生成實(shí)用程序使用虛假證書。該虛假證書僅適用于測試.

編寫本機(jī)實(shí)現(xiàn)

對于 AIR for TV 而言,您的擴(kuò)展的本機(jī)實(shí)現(xiàn)是 AIR for TV 模塊。

AIR for TV 分發(fā)包提供了擴(kuò)展開發(fā)工具包 (EDK),用于編寫和生成您的擴(kuò)展的本機(jī)實(shí)現(xiàn)。

EDK 包括下列部分:

C 擴(kuò)展 API 頭文件:

  1. <AIR for TV installation directory>/products/stagecraft/include/ae/edk/FlashRuntimeExtensions.h 

該頭文件聲明本機(jī)實(shí)現(xiàn)使用的 C 類型和函數(shù)。

一個(gè)位于以下源文件中的擴(kuò)展模塊實(shí)現(xiàn):

  1. <AIR for TV installation directory>/products/stagecraft/source/ae/edk/ExtensionBridge.cpp 

請不要修改此擴(kuò)展模塊實(shí)現(xiàn)。當(dāng)您生成您的本機(jī)實(shí)現(xiàn)時(shí),必須在您的內(nèi)部版本中包括此源文件。

生成您的設(shè)備綁定擴(kuò)展所需的生成文件支持。

注: AIR for TV EDK 要求將 FREInitializer() 方法命名為 Initializer(),將 FREFinalizer() 方法命名為 Finalizer()。

將 ActionScript 和本機(jī)代碼放入目錄結(jié)構(gòu)中

設(shè)備綁定擴(kuò)展是特定于硬件平臺的。當(dāng)您開發(fā)設(shè)備綁定擴(kuò)展時(shí),請將您的文件放入您的平臺的子目錄中。此子目錄位于以下目錄中:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/<yourCompany>/stagecraft-platforms/<yourPlatform>/edk

例如,公司 A 使用以下子目錄來進(jìn)行面向其平臺 B 的開發(fā)工作:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk

請將您的 C 實(shí)現(xiàn)的頭文件和源文件放入 <您的平臺>/edk 目錄或其子目錄中。例如,將您的擴(kuò)展 .cpp 和 .h 文件在放入以下目錄中:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/native

類似地,將您的實(shí)際 ActionScript 實(shí)現(xiàn)的 .as 文件放入 <您的平臺>/edk 目錄或其子目錄中。例如:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/as/real

另外,請將您的存根或模擬器 ActionScript 實(shí)現(xiàn)的 .as 文件放入 <您的平臺>/edk 目錄或其子目錄中。例如:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/as/stub

<AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/as/simulator

注:pAIR for TV 提供的擴(kuò)展示例位于目錄 <AIR for TV 安裝目錄>/products/stagecraft/source/edk 中。請不要將您的擴(kuò)展文件放入此目錄中。

創(chuàng)建 .mk 文件

與其他 AIR for TV 模塊一樣,要生成您的擴(kuò)展模塊,您首先需要?jiǎng)?chuàng)建 .mk 文件。.mk 文件的主要用途是指定要生成的源文件。

要?jiǎng)?chuàng)建 .mk 文件,請執(zhí)行下列操作:

復(fù)制以下目錄中的 PlatformEDKExtension_HelloWorld.mk 文件或 PlatformEDKExtension_Process.mk 文件:

  <AIR for TV installation directory>/products/stagecraft/source/ae/edk/helloworld/

  <AIR for TV installation directory>/products/stagecraft/source/ae/edk/process/

將其復(fù)制到:

  <AIR for TV installation directory>/products/stagecraft/thirdparty-private/<yourCompany>/stagecraft-platforms/<yourPlatform>
  1. 此目錄與包含您的平臺的 Makefile.config 文件的目錄相同。

  2. 將 .mk 文件重命名為 PlatformEDKExtension_<您的擴(kuò)展名稱>.mk。AIR for TV 生成實(shí)用程序自動(dòng)通過此命名約定發(fā)現(xiàn) .mk 文件。

    請始終使用 PlatformEDKExtension_ 作為 .mk 文件名稱的開頭。

  3. 編輯 .mk 文件中標(biāo)有“REQUIRED”的部分。

進(jìn)行下列必要的修改:

  • 將 SC_EDK_EXTENSION_NAME 設(shè)置為擴(kuò)展名稱。將該變量設(shè)置為 PlatformEDKExtension_<您的擴(kuò)展名稱>.mk 中 <您的擴(kuò)展名稱> 的值。

  • 將 SC_EDK_EXTENSION_PACKAGE 設(shè)置為擴(kuò)展軟件包名稱。將該值設(shè)置為在您的擴(kuò)展的 ActionScript 端使用的軟件包名稱。

    生成實(shí)用程序?qū)⒃撝涤米鲾U(kuò)展的擴(kuò)展描述符文件中 <id> 元素的值。它還使用此值和 .ane 擴(kuò)展文件名命名生成的 ANE 文件。

  • 將 SC_EDK_EXTENSION_VERSION 設(shè)置為擴(kuò)展的版本號。

    生成實(shí)用程序?qū)⒃撝涤米鲾U(kuò)展的擴(kuò)展描述符文件中 <versionNumber> 元素的值。

  • 設(shè)置 SC_MODULE_SOURCE_DIR、SC_MODULE_SOURCE_FILES 和 SC_ADDITIONAL_MODULE_OBJ_SUBDIRS 以指定 AIR for TV 提供的本機(jī)實(shí)現(xiàn)文件。

    注: 請不要從該列表中刪除 ExtensionBridge.cpp。請刪除 HelloWorld 或 Process 擴(kuò)展實(shí)現(xiàn)文件。通常,不要將您的擴(kuò)展的源文件添加到該列表中。

    例如:

  SC_MODULE_SOURCE_DIR := $(SC_SOURCE_DIR_EDK)

SC_MODULE_SOURCE_FILES := ExtensionBridge.cpp

設(shè)置 SC_PLATFORM_SOURCE_DIR 和 SC_PLATFORM_SOURCE_FILES 以指定您的擴(kuò)展的本機(jī)實(shí)現(xiàn)文件。例如:

  SC_PLATFORM_SOURCE_DIR := $(SC_PLATFORM_MAKEFILE_DIR)/edk/myExtension/native

SC_PLATFORM_SOURCE_FILES := \ MyExtension.cpp \

helper\MyHelperClass1.cpp \

helper\MyHelperClass2.cpp

將 SC_EDK_AS_SOURCE_DIR 設(shè)置為包含您的擴(kuò)展的實(shí)際(而非存根)實(shí)現(xiàn)的 ActionScript 文件的目錄。例如:

  SC_EDK_AS_SOURCE_DIR := $(SC_PLATFORM_MAKEFILE_DIR)/edk/myExtension/as/real

注: 該目錄是您的 ActionScript 軟件包的基本目錄。例如,假定有一個(gè)名為 tv.adobe.extension.example 的 ActionScript 軟件包。目錄 tv、adobe、extension 和 example 是 SC_EDK_AS_SOURCE_DIR 的后續(xù)子目錄。

設(shè)置 SC_EDK_AS_CLASSES 以列出實(shí)際 ActionScript 實(shí)現(xiàn)定義的每個(gè) ActionScript 類。例如:

  SC_EDK_AS_CLASSES := MyExtension \ MyHelperClass1 \ MyHelperClass2

 

將 SC_EDK_AS_SOURCE_DIR_AUTHORING 設(shè)置為包含您的擴(kuò)展的存根或模擬器實(shí)現(xiàn)的 ActionScript 文件的目錄。例如:

  SC_EDK_AS_SOURCE_DIR_AUTHORING := $(SC_PLATFORM_MAKEFILE_DIR)/edk/myExtension/as/stub

注: 該目錄是您的 ActionScript 軟件包的基本目錄。例如,假定有一個(gè)名為 tv.adobe.extension.example 的 ActionScript 軟件包。目錄 tv、adobe、extension 和 example 是 SC_EDK_AS_SOURCE_DIR_AUTHORING 的后續(xù)子目錄。

設(shè)置 SC_EDK_AS_CLASSES_AUTHORING 以列出存根或模擬器 ActionScript 實(shí)現(xiàn)定義的每個(gè) ActionScript 類。例如:

  SC_EDK_AS_CLASSES_AUTHORING := MyExtension \ MyHelperClass1 \ MyHelperClass2

 安裝第三方庫

生成 AIR for TV 需要某些第三方庫。

如果您僅生成您的擴(kuò)展模塊,而不是生成所有 AIR for TV,則需要的庫有:

AIR 3 SDK

http://www.adobe.com/products/air/sdk/ 中選擇下載 Mac OS X。

創(chuàng)建一個(gè)目錄以包含 .tbz2 文件的內(nèi)容。例如:

  /usr/AIRSDK

 將 .tbz2 文件的內(nèi)容解壓到此目錄中。

  tar jxf AdobeAIRSDK.tbz2

設(shè)置 PATH 環(huán)境變量以包括 AIR SDK bin 目錄。在本示例中,該 bin 目錄是 /usr/AIRSDK/bin。

Open Source Flex® SDK。

http://opensource.adobe.com/wiki/display/flexsdk/Downloads 下載 Open Source Flex SDK 最新發(fā)行版的 ZIP 文件。

創(chuàng)建一個(gè)目錄以包含 ZIP 文件的內(nèi)容。例如:

  /usr/flexSDK

 

將 ZIP 文件的內(nèi)容解壓到此目錄中。

  unzip flex_sdk_4.5.1.21328_mpl.zip

設(shè)置 PATH 環(huán)境變量以包括 Flex SDK bin 目錄。在本示例中,該 bin 目錄是 /usr/flexSDK/bin。

Java運(yùn)行時(shí)。Flex SDK 需要最新的 Java 運(yùn)行時(shí)。如果您的開發(fā)系統(tǒng)還不具有 Java 運(yùn)行時(shí),請?jiān)L問 http://www.java.com/en/download/manual.jsp 獲取下載包和安裝說明。

設(shè)置 PATH 環(huán)境變量以包括 Java bin 目錄。

運(yùn)行生成實(shí)用程序

 具體說來,在生成擴(kuò)展時(shí),生成實(shí)用程序在 Makefile.config 中使用下列生成變量:

  • SC_ZIP

  • SC_UNZIP

  • SC_PLATFORM_NAME

  • SC_PLATFORM_ARCH

在創(chuàng)建您的平臺的 Makefile.config 文件和您的擴(kuò)展的 .mk 文件后,您可以使用生成實(shí)用程序執(zhí)行下列操作:

  • 生成 AIR for TV 的所有組件。

  • 僅生成您的擴(kuò)展模塊。

要生成 AIR for TV 的所有組件,請執(zhí)行下列操作:
  1. 確保已設(shè)置環(huán)境變量 SC_BUILD_MODE 和 SC_PLATFORM。

  2. 如果您使用自己創(chuàng)建的證書對您的擴(kuò)展進(jìn)行簽名,請?jiān)O(shè)置環(huán)境變量 SC_EDK_ANE_CERT_FILE 和 SC_EDK_ANE_CERT_PASSWD。

    將 SC_EDK_ANE_CERT_FILE 設(shè)置為您的證書的相對或絕對路徑。相對路徑相對于生成目錄 <AIR for TV 安裝目錄>/stagecraft/build/linux。

    將 SC_EDK_ANE_CERT_PASSWD 設(shè)置為該證書的密碼。

    如果您不設(shè)置這些環(huán)境變量,生成實(shí)用程序?qū)⑹褂媚J(rèn)的虛假證書,并且顯示警告消息。該虛假證書僅適用于測試。

  3. 更改到目錄:

      <AIR for TV installation directory>/products/stagecraft/build/linux

 輸入以下命令:

  make

要僅生成您的擴(kuò)展模塊,請執(zhí)行下列操作:

  1. 確保已設(shè)置環(huán)境變量 SC_BUILD_MODE 和 SC_PLATFORM。

  2. 如果您使用自己創(chuàng)建的證書對您的擴(kuò)展進(jìn)行簽名,請如前面的步驟所述,設(shè)置環(huán)境變量 SC_EDK_ANE_CERT_FILE 和 SC_EDK_ANE_CERT_PASSWD。

  3. 更改到目錄 stagecraft/build/linux。

  4. 輸入以下命令:

  make PlatformEDKExtension_<your extension name>

您可以用以下命令刪除以前為您的擴(kuò)展生成的所有對象:

  make clean-PlatformEDKExtension_<your extension name>

 

您可以用以下命令刪除以前為您的擴(kuò)展生成的所有對象,然后重新生成這些對象:

  make rebuild-PlatformEDKExtension_<your extension name>

 

重要說明: 如果您的生成計(jì)算機(jī)使用了防火墻,則生成實(shí)用程序有時(shí)會失敗。防火墻可能禁止訪問 ADT 在將本機(jī)擴(kuò)展打包為 ANE 文件時(shí)使用的時(shí)間戳服務(wù)器。這一失敗會產(chǎn)生以下錯(cuò)誤輸出:

  Could not generate timestamp: Connection timed out

 

要避免該失敗,請修改生成實(shí)用程序使用的 ADT 命令。編輯以下目錄中的文件 extension.mk:

  <AIR for TV installation directory>/stagecraft/source/ae/edk/

查找以下行:

  $(SC_EXEC_CMD) $(SC_ADT) -package \

將參數(shù) -tsa none 添加至該命令,如下所示:

   $(SC_EXEC_CMD) $(SC_ADT) -package-tsa none\

 

生成實(shí)用程序擴(kuò)展輸出

生成實(shí)用程序?yàn)槟臄U(kuò)展創(chuàng)建兩個(gè)文件。它將這些文件放入下列目錄之一,具體取決于您為 SC_BUILD_MODE 指定了 debug 還是 release:

  <AIR for TV installation directory>/build/stagecraft/linux/<yourPlatform>/debug/bin

<AIR for TV installation directory>/build/stagecraft/linux/<yourPlatform>/release/bin

生成實(shí)用程序?yàn)槟臄U(kuò)展創(chuàng)建的文件有:

  • 一個(gè) ZIP 文件,包含要在設(shè)備上部署的設(shè)備綁定擴(kuò)展。

  • 一個(gè) ANE 文件,包含存根或模擬器擴(kuò)展。AIR 應(yīng)用程序開發(fā)人員使用該 ANE 文件來生成他們的應(yīng)用程序。他們還使用它在使用 ADL 的臺式計(jì)算機(jī)上測試他們的應(yīng)用程序。他們還將該 ANE 文件與他們的應(yīng)用程序一起打包為 AIRN 軟件包。

同時(shí)生成存根和模擬器擴(kuò)展

有時(shí),除了實(shí)際擴(kuò)展以外,您還想同時(shí)生成存根和模擬器擴(kuò)展。通常,您指示 AIR 應(yīng)用程序開發(fā)人員執(zhí)行以下操作:

  • 使用模擬器擴(kuò)展在臺式計(jì)算機(jī)上進(jìn)行測試。

  • 將存根擴(kuò)展與他們的應(yīng)用程序一起打包為 AIRN 軟件包。

要同時(shí)生成存根和模擬器擴(kuò)展,請執(zhí)行以下操作:

  1. 創(chuàng)建存根擴(kuò)展及其 .mk 文件。確保您可以生成存根擴(kuò)展和實(shí)際擴(kuò)展。

  2. 為您的模擬器實(shí)現(xiàn)創(chuàng)建一個(gè)目錄,該目錄需要是您的存根實(shí)現(xiàn)目錄的兄弟目錄。例如:

      <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/as/stub

    <AIR for TV installation directory>/products/stagecraft/thirdparty-private/CompanyA/stagecraft-platforms/PlatformB/edk/myExtension/as/simulator

  3. 制作您的擴(kuò)展的 .mk 文件的副本。

  4. 在該副本中,編輯 SC_EDK_AS_SOURCE_DIR_AUTHORING 和 SC_EDK_AS_CLASSES_AUTHORING 的值。對這些值進(jìn)行適當(dāng)?shù)脑O(shè)置,以反映您的模擬器實(shí)現(xiàn)目錄和類。

  5. 重命名您的擴(kuò)展的原始 .mk 文件,以保證它的安全。然后,將該副本重命名為您的擴(kuò)展的 .mk 文件名:PlatformEDKExtension_<您的擴(kuò)展名稱>.mk。

  6. 將您的平臺的 bin 目錄中的存根 ANE 文件移至某個(gè)安全的位置。否則,下一步操作會覆蓋該文件。

  7. 運(yùn)行生成實(shí)用程序以生成實(shí)際擴(kuò)展和您的模擬器擴(kuò)展。

責(zé)任編輯:佚名 來源: Adobe
相關(guān)推薦

2011-11-16 16:21:09

AdobeAIR

2011-11-16 15:14:57

AdobeAIRiOS設(shè)備

2012-03-09 10:46:35

Adobe AIR是什Adobe AIRAIR

2012-03-15 09:55:23

Adobe AIR安裝

2009-06-25 10:46:22

Silverlight

2009-01-18 09:20:49

AIRAdobeFlex

2010-08-18 08:21:49

Adobe AIRAndroid

2010-10-29 09:28:52

Adobe AirAdobe MAXflash

2012-07-06 13:45:21

跨平臺工具Adobe AirFlex

2012-03-09 13:26:53

2011-11-17 15:17:37

AdobeAIR調(diào)試性能

2011-11-17 15:31:12

AdobeAIR

2012-02-28 13:52:45

Adobe AIRAndroidFlash

2012-03-09 13:52:28

Adob??e AIRiOS

2011-11-16 15:47:04

AdobeAIRiOS應(yīng)用

2012-03-15 09:46:41

UbuntuLinux安裝Adobe AIR

2011-11-16 13:47:05

2011-11-16 14:20:43

Adobe AIR

2010-10-27 14:03:11

Adobeair 2.5蘋果

2011-11-17 15:01:37

AdobeAIR移動(dòng)應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號