修正的問題

發行日期:2012/10/8

  • 在 Internet Explorer 中來回瀏覽 Flash 內容時,發生當機 (3328165)
  • 無法在 iOS 上使用 ANE 封裝應用程式,此方法不會實作結束設定式函數。(3325320)
  • 在 iOS 的 ANE 中只用預設實作封裝 IPA 時,封裝失敗,出現 Null 指標例外。(3325321)
  • 每次啟動 iOS 模擬器,都會清除資料庫資料。(3329309)
  • iOS 上的 WiFi 除錯:當播放程式目標 AIR3.4 的網路介面選為「預設」時,iOS 上的除錯功能無法運作 (3325323)

發行日期:2012/8/21

  • 中斷連線時,Netstream 斷斷續續出現當機的情形 (3193417)
  • 停止 AIR Android 上的即時音效串流時發生問題 (3188340)
  • drawWithQuality() 無法正確地在 Android 裝置上顯示濾鏡 (3224928)
  • Clipboard.generalClipboard.setData 無法在 iOS 上執行 (3226045)
  • 有些 FLV 視訊內容無法在 Windows 的 Flash Player 中播放 (3187569)
  • Windows 的 Firefox 只能播放 Flash Player 應用程式中的右側音效 (3289279)
  • 進入全螢幕互動模式之後停用了滑鼠鎖定功能 (3174344)
  • [iOS5] 具有內嵌字體的 TextFields 在行動裝置上變成亂碼 (3161138)
  • 有些即時串流內容的第一個影格出現凍結的情形 (3207896)
  • 應用程式描述器中的 iOS 應用程式現在支援 50X50、100X100、1024X1024 的應用程式圖示 (3217144)
  • 使用特定外部元件庫時,使用原生擴充功能的應用程式有時會在 iOS 上發生當機,例如 Libxml2.dylib (3226974)
  • 當解析度為 768 x 1004 或 1024 x 748 的啟動影像封裝在全螢幕的 iPad 應用程式中時,出現一些偏差 (3230762)。如需使用啟動影像的新指引,請參閱這裡
  • 在附加至 StageVideo 物件的兩個 NetStreams 之間切換時,iOS 上的 H264 視訊發生當機 (3206438)
  • CameraRoll.browseForImage() 造成遺失透明度,因而產生白色的問題 (3291312)

新功能

發行日期:2012/10/8

至 2012/9/19 為止,iOS6 SDK 不再存在測試版中。

這個版本沒有新功能

發行日期:2012/8/21

  • ActionScript Workers (Flash Player)
  • Sandbox Bridge 支援 (Flash Player)
  • 授權支援:適用於遊戲的 Flash Player 高階功能 (Flash Player)
  • 增加的 GPU 範圍適用的 Stage3D「限制」描述檔 (Flash Player 和 AIR)
  • LZMA 支援 ByteArray (Flash Player 和 AIR)
  • StageVideo attachCamera/Camera 改進 (Flash Player 和 AIR)
  • 壓縮的紋理,具備 Stage3D 的 Alpha 支援 (Flash Player 和 AIR)
  • DXT 編碼 (Flash Player 和 AIR)
  • AIR 不再使用 Carbon API (AIR)
  • 使用 ADT 的直接 AIR 部署 (AIR)
  • iOS 的推送通知 (AIR)
  • Ambient AudioPlaybackMode (AIR)
  • iOS 原生擴充功能中的例外支援 (AIR)
  • ADT 中列出附加之行動裝置的新選項 (AIR)
  • 解決 iOS 上 ANE 元件衝突的 ADT 選項 (AIR)

如需 Flash Player 和 AIR 的完整功能清單,包括先前版本所引進的功能,請檢閱這裡的文件

發行的版本

提供的項目 發行的版本
 Flash Player 桌上型電腦版本 (Windows® /Mac)  11.4.402.287
 AIR (Windows®、Mac、行動裝置版本)  3.4.0.2710
 AIR SDK  3.4.0.2710

已知問題

發行日期:2012/8/21
  • Matrix3D 的 transformVector() 錯誤轉換 w 組件 (3190677)
  • [iOS] 在 iOS 4.3 上,具有 Alpha、壓縮的立方體對應無法正常顯示 (3282166)
  • 高位元 ASCII 字元無法正常用於 AIR 桌面應用程式的 navigateToURL 問題 (3161093)
  • [iOS] 在某些內容上,以 AIR 3.4 安裝 .ipa 檔案有時會失敗,安裝錯誤:PackageExtractionFailed (3220974)
  • 封裝 iOS 的應用程式時,若同時使用 -hideAneLibSymbols 旗標,ANE platform.xml 檔案上應只能使用架構和元件庫連結的連結器選項,以及如 -ios_version_min 等選項
Adobe 會持續研究 iOS 6 Beta SDK 並解決問題。目前的已知問題包括:
  • 地理位置權限對話方塊未出現在 iOS 6 Beta 上 (3291688)
  • 以 AIR 3.4 SDK 與 iOS 6 Beta SDK 封裝的 AIR 應用程式不支援 iPod 和 iPhone 上做為上下顛倒之用的 AutoOrients (3286288)
  • 任何以 AIR 3.4 SDK 與 iOS 6 Beta SDK 封裝的應用程式皆不支援 iOS 5.1 裝置上的 aspectRatio 標記 (3286320)

安全性增強功能

安全性佈告欄 受影響的項目
 APSB12-22  Flash Player 桌上型電腦版本 Windows® 與 Mac

 Flash Player AndroidTM

新功能:概觀


ActionScript Workers

  • 將 Workers 引入 ActionScript 和 Flash Runtime 之後,Flash 開發人員現在可以卸下一些工作,例如高度延遲的作業以及需長時間執行的運算,讓「背景 Worker」幫忙處理。這些背景 Worker 會同時執行,以便利用更多電腦資源並避免發生如 UI 凍結等情形。 
  • 注意:為了充分利用 ActionScript Workers 並為 Worker 進行除錯,必須安裝下一版的 Flash Builder。這個新版 Flash Builder 將於 8 月透過公開 Beta 版提供使用。
  • 注意:共用記憶體支援 (ByteArray.shareable) 已經移至即將推出的 Flash Player 版本。

Sandbox Bridge 支援

  • 安全執行程序橋接可讓特定 ActionScript 物件或函數在 SWF-to-SWF 跨網域通訊之間公開。這個功能已經在 AIR 中提供使用,並即將移至這個版本的 Flash Player 中。

授權支援:適用於遊戲的 Flash Player 高階功能 (Flash Player)

  • 引進用於遊戲的高階功能之後,我們現在可讓非 ActionScript 工作流程將目標設定為 Flash Player。這個版本支援 Flash Player 中 XC API (搭配使用網域記憶體 API 和 Stage 3D 硬體加速 API) 的高階功能授權控制。這些 API 是由一些如 Unity 和 Adobe 的專案「Alchemy」C/C++ 編譯器等協力廠商工具所使用。如需詳細資訊,請造訪 www.adobe.com/go/fpl_tw

增加的 GPU 範圍適用的 Stage3D「限制」描述檔

  • Flash Player 將根據您的視訊卡驅動程式的日期來決定是否使用硬體加速。在先前版本中,我們限制了對 2008 年 1 月 1 日以前驅動程式的支援。在這個版本中,我們將限制變更為適用於 2006 年 1 月 1 日以前的驅動程式。可能的話,使用 wmode=direct (或 AIR 的 renderMode=direct) 的內容應該會在 1/1/2006 以後的顯示卡驅動程式日期執行硬體加速。這適用於 Stage3D 和 [StageVideo|StageVideo] API。除此之外,我們還為 Stage3D 新增名為「限制」的描述檔,可讓您的內容在先前列入黑名單的 Intel® GMA 晶片組上執行硬體加速。如需有關這個新描述檔及利用方式的詳細資訊,請參閱下面內容。

LZMA 支援 ByteArray

  • 除了 ByteArray 的 zlib 壓縮以外,我們還引進其他根據 LZMA 的壓縮類型,可透過 ByteArray.compress() 和 ByteArray.uncompress() 壓縮 ByteArray 內的資料。

壓縮的紋理,具備 Stage3D 的 Alpha 支援 (Flash Player 和 AIR)

  • 壓縮的紋理現在支援透明影像 (ATF 檔案格式)。

StageVideo attachCamera/Camera 改進

  • 這個功能會公開 StageVideo 物件上的新方法,該方法可讓 Actionscript 程式碼指示攝影機中的視訊串流移動至 StageVideo 物件,進而利用 GPU 進行顯示,而不使用點陣化解譯器。當 GPU 加速可供使用時,這讓播放程式能以更快的速度處理攝影機中的視訊串流。

DXT 編碼

  • 這個功能可在執行階段期間將未壓縮的紋理編碼為 DXT 格式,以便將紋理當做壓縮的 DXT 紋理上傳到 GPU。
    Flash Player 11.4 和 AIR 3.4 的桌上型電腦版本均有提供

AIR 不再使用 Carbon API

  • 從 Mac OS X 10.8 開始,Apple 不再支援 Carbon API。因此,這些 API 和其他不再使用的程式碼都將從這個版本的 AIR 中移除,以便與 Mac OSX 10.8 相同。
使用 ADT 的直接 AIR 部署
  • 這個新功能可讓開發人員在 iOS 裝置上部署 AIR 應用程式,而不需使用 iTunes 或 XCode。請注意,使用者的電腦必須安裝 iTunes 10.5.0 或更新版本,才能使用這個功能。

iOS 推送通知

  • 這個功能將會使用 APNS (Apple Push Notification Service) 和提供者 (將與 APN 通訊的協力廠商伺服器) 來產生通知。新的套件 flash.notifications 已經引進。推送通知的傳遞完全取決於 Apple Push Notification Service,並且 APNS 不保證傳遞推送通知。此外,Apple 建議每次啟動應用程式時都訂閱推送通知。每當用戶端應用程式訂閱推送通知時,APNS 就會提供字符 ID 給用戶端應用程式,並且這個字符 ID 應該會傳送到將傳送遠端通知的協力廠商伺服器或提供者。

Ambient AudioPlaybackMode

  • 有了 AIR 3.4,使用者將有另一個 AudioPlaybackMode 可供選擇,例如 AMBIENT,而非 VOICE 和 MEDIA。這個新的 AudioPlaybackMode 可讓使用者強制應用程式執行 iPhone/iPad 中的「硬體靜音開關」。這個環繞播放模式最強而有力的用法是在遊戲應用程式中,應用程式的使用者可以選擇將遊戲聲音靜音,也可以聽著背景中任何其他應用程式的音樂。在環繞模式中,音效只會遵守 iOS 裝置上的硬體靜音開關。在 AndroidTM 裝置上,環繞模式就和媒體模式一樣。

iOS 原生擴充功能中的例外支援

  • iOS 的原生擴充功能現在可以使用 C++ 和 Objective-C 擴充功能。擴充功能可以決定是否捕捉程式碼中擲回的所有例外。執行階段將不會捕捉擴充功能所擲回的例外。

列出附加之行動裝置的 ADT 選項

  • ADT 中新增了一個新選項「-devices」,可用來列出附加的 iOS/AndroidTM 裝置。使用者可以利用這個選項,而不要使用 adb 來列出 AndroidTM 裝置及使用 idb 來列出 iOS 裝置。請注意,使用者的電腦必須安裝 iTunes 10.5.0 或更新版本,才能使用這個功能。

解決 iOS 上 ANE 元件衝突的 ADT 選項

  • 由於應用程式開發人員會使用多個從各種資源取得的原生擴充功能,因此,2 個 ANE 中的一般元件名稱可能會導致封裝錯誤,指出物件檔案中有重複的元件,或者執行階段發生當機。為防範這個問題,已經引進新的 ADT 選項 -hideAneLibSymbols,可在封裝應用程式時加以指定。這個選項可以接受 yes 或 no 兩個值,yes 代表隱藏每個 ANE 之間的元件庫元件。

新功能:使用原則

開始使用 Worker

若要開始使用 Worker 功能,請參閱 flashplayer11-4_p1_ex_concurrency.zip 檔案中的範例。

注意

下列是 MacOS 和 Windows® 上每個 Worker 所測量的記憶體使用量。

Worker 的編號

Mac BookPro
Mac OS X 10.7.3 
2.4 GHz Intel® CoreTM i7 
8GB RAM 
Mac OSX 10.7 
記憶體 (MB)

個人電腦 
Windows® 7 32 位元 
Intel® Xeon 四核心 3.2GHz 
2048MB RAM 
Windows® 7 
記憶體 (MB)

Lenovo T61 膝上型電腦 
Windows® XP 
Intel® CoreTM Duo Core 2.2GHz 
2014MB RAM 
Windows® XP 
記憶體 (MB)

0

10 

4.78 

4.39 

1

15.75 

9.33 

8.59 

2

21.47 

13.8 

12.77 

3

27.28 

18.35 

16.39 

4

33 

22.8 

20.67 

5

38.81 

26.39 

24.58 

6

44.25 

31.1 

28.8 

7

50 

35.62 

32.67 

8

55.89 

40.16 

35.75 

9

61.7 

44.73 

39.6 

10

67.47 

48.83 

43.9

當程式碼在非原始 Worker (例如背景) 內執行時,有些 Flash 執行階段 API 行為將不同於在主要執行緒中執行的 Actionscript 程式碼。下列 API 從背景 Worker 內使用時會有不同的行為。

非功能性 API

下列 API 無法從背景 Worker 內使用。任何建構任一實體的嘗試都將擲回 IllegalOperationError,並顯示訊息「這個內容未提供這個功能」,所有實體中的 errorID 將會是相同的,以便開發人員鍵出此值。

  • flash.desktop.Clipboard // 呼叫建構函式將會擲回;呼叫 generalClipboard 將會擲回 null
  • flash.desktop.NativeDragManager // isSupported 傳回 false
  • flash.desktop.Updater // isSupported 傳回 false
  • flash.display.NativeMenu // isSupported 傳回 false
  • flash.display.NativeWindow // isSupported 傳回 false
  • flash.display.ToastWindow // 無法存取實體,因為絕不會定義 stage.window
  • flash.display.Window // 無法存取實體,因為絕不會定義 stage.window
  • flash.external.ExtensionContext // createExtensionContext() 永遠會傳回 null 或擲回錯誤
  • flash.external.ExternalInterface // available 傳回 false
  • flash.html.* // HTMLLoader.isSupported 傳回 false
  • flash.media.CameraRoll // supportsAddBitmapData 和 supportsBrowseForImage 傳回 false
  • flash.media.CameraUI // isSupported 傳回 false
  • flash.media.StageWebView // isSupported 傳回 false
  • flash.net.drm.* // DRMManager.isSupported 傳回 false
  • flash.printing.* // PrintJob.isSupported 傳回 false
  • flash.security.XMLSignatureValidator // isSupported 傳回 false
  • flash.system.IME // isSupported 傳回 false
  • flash.system.SystemUpdater // 呼叫建構函式擲回
  • flash.text.StageText // 呼叫建構函式擲回
  • flash.ui.ContextMenu // isSupported 傳回 false
  • flash.ui.GameInput // isSupported 傳回 false
  • flash.ui.Mouse // 所有方法均為 no-ops;設定「cursor」屬性為 no-op

API 的行為變更

下列 API 已變更從背景 Worker 執行時的行為。方法上的有些呼叫為 no-ops,而其他則會擲回 IllegalOperationError 或與記載的 API 相符的項目。傳回值應與文件到可能的範圍相符。例如,如果方法傳回陣列,而陣列中的元素處於一般條件,在背景 Worker 執行時,將會傳回空白陣列。

  • flash.accessibility.Accessibilty
    • active // 永遠傳回 false
    • updateProperties(); // no-op
  • flash.desktop.NativeApplication** 屬性

·          

  • flash.display.Stage
    • allowsFullScreen // 永遠傳回 false
    • stage3Ds // 永遠傳回空白向量
    • stageVideos // 永遠傳回空白向量
    • supportsOrientationChange // 永遠傳回 false
    • wmodeGPU // 永遠傳回 false
  • flash.filesystem.File
    • browseForDirectory()、browseForOpen()、browseForOpenMultiple()、browseForSave() // no-op
  • flash.net.FileReference** browse()、download()、save() // no-op;永遠傳回 false
  • flash.net.FileReferenceList** browse() // no-op;永遠傳回 false
  • flash.system.System
    • ime // 永遠傳回 null
    • exit() // 強制這個背景 Worker 停止並關閉
    • setClipboard() // no-op
  •  
    • 方法
      • activate()、clear()、copy()、cut()、paste()、selectAll() // no-op
      • exit() // 強制這個背景 Worker 停止並關閉
    • 事件
      • 只支援 exiting 事件 - 當 Worker 正在關閉 (同時發生效期方法呼叫或「主要」Worker 正在關閉,例如執行階段正在結束;無法從背景 Worker 取消) 時,將會傳送這個事件
    •  
      • supportsDefaultApplication、supportsDockIcon、supportsMenu、supportsStartAtLogin、supportsSystemTrayIcon // 全部傳回 false
      • activeWindow // 傳回 null
      • autoExit // setter 為 no-op
      • idleThreshold // setter 為 no-op
      • openedWindows // 傳回空白陣列 []
      • systemIdleMode // setter 為 no-op

增加的 GPU 範圍 - 限制的 Stage3D 描述檔

Context3D 已引進名為「profile」的新參數。這個參數是提供給 Stage3D.requestContext3D() 函數,並且您可以將它的值指定為 Context3DProfile.BASELINE ("baseline") 或 Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained"),前者會傳回先前版本中已經存在的一般 Context3D,後者會傳回可以與先前不支援的 GPU 上的硬體加速搭配執行的新型 Context3D。限制描述檔可讓內容作者建立以使用顯示卡 (例如 Windows® 上的 Intel® GMA 900/950) 之舊版系統為目標的 Stage3D 內容。以低階硬體為目標來使用限制描述檔的折衷點在於,Stage3D 功能會有所限制,以確保內容能正常與該硬體一起執行。如 GMA 900/950 的顯示卡只支援像素/頂點著色器 2.0 版本,此版本會強制在 Stage3D 執行下列限制 (若在限制描述檔案中):

  • 限制為每個著色器只能有 64 個 ALU 和 32 個紋理指令。
  • 每個著色器只能有 4 個紋理讀取指令。
  • 每個著色器限制為使用較少的常數/不同/暫時暫存器
  • 不支援述詞暫存器。這會影響 sln/sge/seq/sne,並且必須以與 ps_2_0 一起提供的複合 mov/cmp 指令來取代 (與 ps_2_x 相比,這會使用更多指令位置)。
  • Context3D 背景緩衝區必須永遠在舞台範圍內。
  • Flash Player 實體內只能有一個限制描述檔中執行的 Context3D 實體。
  • 如同行動裝置一般,在看得到 Stage3D 限制內容的時候,將不會更新 Flash 顯示清單元素,除非呼叫 Context3D.present()。

「Profile」是 requestContext3D 方法的第二個選擇性參數。開發人員可以要求描述檔「baselineConstained」以限制模式取得 Context3D,如下列 API 所示:function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
範例:

stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED); 

使用 ADT 的直接 AIR 部署

安裝:
若要在裝置上安裝 IPA,請使用下列命令:
adt -installApp -platform ios -device <deviceID> -package <ipa-file>
解除安裝:
若要從裝置解除安裝 IPA,請使用下列命令:
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id>
您連線裝置的 <deviceID> 會是下列命令所列的「Handle」值:
@SDKLocation/bin/adt -devices -platform ios
<app-id> 是在應用程式描述器檔案 (app.xml) 的 <id> 標記內指定的。如果您使用 Flash Builder 來建立專案,專案名稱預設會與您的應用程式名稱相同。 

如果只有一個裝置連線到桌面,請省略「-device <deviceID>」引數,連線的裝置隨即會安裝/解除安裝應用程式。
adt -installApp -platform ios -package <ipa-file> 

iOS 推送通知

1) app-xml 中的應用程式識別名稱 (ID 標記) 應與已啟用推送通知的行動佈建憑證的應用程式識別名稱相同。
2) 包括應用程式描述器中的 aps-environment 權益:

<iPhone>
    <Entitlements>
            <![CDATA[
                          <key>get-task-allow</key>
                          <true/>
                          <key>aps-environment</key>
                          <string>development</string>
                          <key>keychain-access-groups</key>
                          <array>
                         <string>KEYCHAIN_ACCESS_GROUP</string>
                          </array>
                ]]>
    </Entitlements>
</iPhone>

若要將已啟用推送通知的應用程式送出至 App Store,則必須將 aps-environment 設定為 production。開發人員必須使用已啟用推送通知的佈建描述檔。請使用下列命令交叉檢查已簽署之應用程式的權益。

codesign -d --entitlements - <YourAppName>.app

3) 使用應用程式中新加入的 flash.notification 類別可啟用推送通知支援。例如:

// empty Vector List is returned on platforms on which none of the notification styles is supported.
if (RemoteNotifier.supportedNotificationStyles != " " )
{
var preferredNotificationStyles:Vector.<String> = new Vector.<String>();
preferredNotificationStyles.push(NotificationStyle.ALERT);
preferredNotificationStyles.push(NotificationStyle.SOUND);
preferredNotificationStyles.push(NotificationStyle.BADGE);
var subscribeOptions:RemoteNotifierSubscribeOptions = new RemoteNotifierSubscribeOptions();
subscribeOptions.notificationStyles = preferredNotificationStyles;
var rn:RemoteNotifier = new RemoteNotifier();
rn.addEventListener(RemoteNotificationEvent.TOKEN,tokenEventHandler);
rn.addEventListener(RemoteNotificationEvent.NOTIFICATION,notificationEventHandler);
rn.addEventListener(StatusEvent.STATUS,statusHandler);
// calling subscribe method without any subscribe options automatically subscribes for all notification styles supported on that platform
rn.subscribe(subscribeOptions);
}
function tokenEventHandler(event:RemoteNotificationEvent):void
{
// AIR developer can send the tokenId received in event.data to his server via URL request
var urlRequest:URLRequest;
var urlLoader:URLLoader = new URLLoader();
var urlString:String = "https://url.com/api/device_tokens/" + event.tokenId;
urlRequest = new URLRequest(urlString);
urlRequest.authenticate = true;
urlRequest.method =URLRequestMethod.PUT;
URLRequestDefaults.setLoginCredentialsForHost("url.com",<userId>,<password>);
urlLoader.load(urlRequest);
urlLoader.addEventListener(IOErrorEvent.IOERROR, onError);
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.addEventListener(HTTPStatusEvent.HTTPSTATUS,onStatus);
}
public function notificationEventHandler(e:RemoteNotificationEvent):void
{
//Code to handle the data received from the RemoteNotificationEvent event of type Notification
  for (var x:String in e.data)
            {
                trace("\n"+ x + ":  " + e.data[x]);
            }
}
public function statusHandler(e:StatusEvent):void
{
        //code to handle the event when subscription is failed
}
private function onError(e:IOErrorEvent):void
{
         //Code to handle the error which occurred while making url request by the url loader
}
private function onComplete(e:Event):void
{
            //Code to know what if the url request made by the url loader is complete        }
}   
private function onStatus(e:HTTPStatusEvent):void
{
           //Code to know the http status of the url request made by the url loader
}

對於已為每個支援之當地語系化進行翻譯的警示訊息字串,用戶端應用程式可以將字串儲存在它的組合包中。提供者會在通知負荷的 aps 目錄中指定 loc-keyloc-args 屬性。當裝置收到通知時,就會使用 aps 目錄屬性,尋找並格式化針對向使用者顯示的目前語言而當地語系化的字串。

當地語系化的字串必須位於適當 <language>.lproj 資料夾中名為 Localizable.strings 的檔案。這個檔案中的每個項目會有一個索引鍵和當地語系化字串值,該字串會有格式化指定字,可用來轉換變數值。當應用程式詢問特定字串時,會取得已針對使用者目前選取的語言而當地語系化的資源。

為了接收當地語系化的遠端通知,AIR 應用程式必須已當地語系化 IPA 內 <language>/lproj 資料夾中 Localizable.strings 檔案的索引鍵值配對。若要在 IPA 中新增 Localizable.strings,開發人員只要以 ADT 命令新增個別 <language>.lproj 資料夾即可,如下所示:

adt -package -target ipa-app-store -provisioning-profile <MobileProvisioningCertificate> -storetype pkcs12 -keystore <Certificate.p12> -storepass <PASSWORD> app.xml sample.swf en.lproj es.lproj fr.lproj

請注意,lproj 資料夾必須出現在目前目錄中,才能使 ADT 合併適當 lproj 資料夾中的檔案。如果 lproj 資料夾是以 a/b/c/en.lproj 的形式提供,則 ADT 會將這個加入做為 a/b/c/en.lproj,因此,當地語系化的索引鍵值配對將無法存取應用程式。

列出附加之行動裝置的 ADT 選項

您可以使用下列命令來取得有關附加之 iOS/AndroidTM 裝置的資訊:

adt -devices -platform (android | ios)

使用這個命令會產生如下的輸出:

List of attached devices:

Handle   DeviceClass   DeviceUUID                                                    DeviceName

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone


授權支援:適用於遊戲的 Flash Player 高階功能 (僅限 Flash Player)

搭配使用網域記憶體 (由某些協力廠商工具和專案「Alchemy」C/C++ 編譯器所使用) 和 Stage 3D 硬體加速將需要用到授權。在搭配使用這兩個功能時,資訊浮水印將會出現在 Flash Player 內容除錯工具 (除錯播放程式)。這個授權需求適用於使用 Stage3D 硬體加速但不使用網域記憶體 (或使用網域記憶體但不使用 Stage3D) 的內容,而且也不適用於任何使用 Adobe AIR 部署的內容。

處理裝置遺失

未取得授權的內容會透過自動將 Stage3D 切換至軟體顯示的方式,繼續執行。為確保您的內容可以正確地處理顯示卡資源遺失的問題,請偵聽 Stage3D 物件上的 Event.CONTEXT3D_CREATE 事件,以便重新初始化內容的圖像。您可以藉由呼叫 context3D.dispose() 來模擬裝置遺失事件 (所有 Stage3D 內容都會處理裝置遺失,如果電腦遭到鎖定或螢幕保護程式啟動,也會發生裝置遺失)。

解決 iOS 上 ANE 元件衝突的 ADT 選項

您可以使用這個選項,搭配下列命令來封裝應用程式:

 adt -package –target ( ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc | ipa-test-interpreter | ipa-debug-interpreter | ipa-test-interpreter-simulator | ipa-debug-interpreter-simulator ) ( CONNECT_OPTIONS? | LISTEN_OPTIONS? ) ( -sampler )? –hideAneLibSymbols (yes|no) SIGNING_OPTIONS <output-package> ( <app-desc> PLATFORM-SDK-OPTION? FILE-AND-PATH-OPTIONS | <input-package> PLATFORM-SDK-OPTION? )

例如:

 adt -package –target ipa-test
–hideAneLibSymbols yes
–provisioning-profile xxx.mobileprovision
–storetype pkcs12 –keystore Certificates.p12 –storepass password
Sample.ipa sample-app.xml sample.swf
–extdir ANEFolder

使用 yes 值可避免發生元件衝突,而 no 值表示與先前相同的行為。請注意,Flash Builder/Flash Professional 中尚未提供這個功能。

DXT 編碼


var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadFromBitmapData(myPNGBitmap.bitmapData);  // or you can upload from a byteArray as well
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadFromByteArray(myPNGByteArray);


壓縮的紋理和 Alpha


[Embed( source = "rsc/MyCompressed.atf", mimeType="application/octet-stream")]
private var MyATF_DXT1:Class;
 
[Embed( source = "rsc/MyCompressedAlpha.atf", mimeType="application/octet-stream")]
private var MyATF_DXT5:Class;
 
//-----------------------------------------------------------------------------------
 
var fragmentShaderForCompressedTexture:String                          = "tex oc, v0, fs0 <2d, dxt1>";
var fragmentShaderForCompressedAlphaTexture:String              = "tex oc, v0, fs1 <2d, dxt5>";
 
//-----------------------------------------------------------------------------------
 
var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadCompressedTextureFromByteArray(new MyATF_DXT1() as ByteArray, 0);
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadCompressedTextureFromByteArray(new MyATF_DXT5() as ByteArray, 0);

編寫原則

針對 Flash Player 11.4 進行編寫

若要使用新版 Flash Player,您必須傳遞額外的編譯器引數給 Flex 編譯器,藉此以 SWF 第 17 版為目標:-swf-version=17。指示如下。如果您要使用 Adobe Flex SDK:

  • 下載適用於 Flash Player 11.4 的新 playerglobal.swc
  • 下載 Flex 4.5 SDK 表格中的 Flex 4.5.1 SDK (4.5.1.21328)。
  • 在您的開發環境中安裝組建。
  • 在 Flash Builder 中,建立新的 ActionScript 專案:「檔案 -> 新增 -> ActionScript 專案」。
  • 開啟專案的「屬性」面板 (以滑鼠右鍵按一下並選擇「屬性」)。選取左側清單中的「ActionScript 編譯器」。
  • 使用右上角的「設定 Flex SDK」選項,將專案指向 Flex 組建 21328。按一下「確定」。
  • 將您的專案設定為以 SWF 第 17 版為目標
  • 開啟專案的「屬性」面板 (以滑鼠右鍵按一下並選擇「屬性」)。選取左側清單中的「ActionScript 編譯器」。
  • 增加至「額外編譯器引數」輸入:-swf-version=17。這可確保輸出的 SWF 會以 SWF 第 17 版為目標。如果您在命令列上編譯,而不在 Flash Builder 中進行,則必須加入相同的編譯器引數。
  • 確定您的瀏覽器中已經安裝新版的 Flash Player 11.4 組建。

針對 AIR 3.4 進行編寫 更新至 AIR 3.4 命名空間

您必須將應用程式描述器檔案更新至 3.4 命名空間,才能存取新的 AIR 3.4 API 和行為。如果您的應用程式不需要新的 AIR 3.4 API 和行為,便不需要更新命名空間。不過,我們還是建議所有使用者開始使用 AIR 3.4 命名空間,即使您尚未使用新的 3.4 功能亦然。若要更新命名空間,請將應用程式描述器中的 xmlns 特質變更為:<application xmlns="http://ns.adobe.com/air/application/3.4">

報告錯誤

發現錯誤?請將錯誤送出至 Flash Player 和 Adobe AIR錯誤資料庫。

Flash Player 和 AIR 可以利用您的圖形硬體來解碼和播放 H.264 視訊。有些視訊問題僅能透過特定的圖形硬體和驅動程式重現。報告關於視訊的問題時,必須記下您的圖形硬體和驅動程式以及作業系統和瀏覽器 (使用 Flash Player 時),以便我們重現和調查問題。請務必提供報告視訊播放問題指示中所述的資訊。注意:由於我們收到的電子郵件數量龐大,所以無法回應每項要求。

感謝您使用 Adobe® Flash Player® 和 AIR® 並花時間將您的意見回應傳送給我們!

系統需求

如需最新 Flash Player 和 AIR 系統需求,請檢閱這裡的文件


Runtime 版本記錄

 

 發行日期 Runtime 版本 安全性增強功能
2012 年 8 月 21 日 Flash Player 桌上型電腦版本 (Windows、Mac):11.4.402.265
AIR (Windows、Mac、行動裝置版本):3.4.0.2540
AIR SDK:3.4.0.2540
 APSB12-19

此産品由 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授權  Creative Commons 條款未涵蓋 Twitter™ 與 Facebook 文章。

法律說明   |   線上隱私權政策