2013 年 6 月 11 日歡迎使用 Flash Player 11.7 和 AIR 3.7。這是排程的更新。這個版本包含一些錯誤修正和安全性增強功能。

修正的問題

  • stageVideo 的攝影機無法運作 (iOS)(3558247)
  • 沒有停用硬體加速的選項 (3560209)
  • 沒有可後援 WAV 音效的選項 (3553459)

新功能

這個版本沒有新功能。
 
下列功能是 2013 年 4 月 9 日所推出的 Flash Player 版本。
新功能:
  • 安全執行程序增強功能
  • 防止共享物件的雲端備份 (iOS)
  • 針對選取的裝置使用 CPU 顯示模式 (iOS)
  • 從外部裝載次要 SWF 檔案 (iOS)
  • GameInput API (Android)
 
如需 Flash Player 和 AIR 的完整功能清單,包括先前版本所引進的功能,請檢閱這裡的文件
 

發行的版本

提供的項目 發行的版本
 Flash Player 桌上型電腦版本 (Mac)  11.7.700.225
 Flash Player 桌上型電腦版本 (Win)  11.7.700.224
 AIR 桌上型電腦版本 (Mac)  3.7.0.2100
 AIR 桌上型電腦版本 (Win)  3.7.0.2090
 AIR 行動裝置版本  3.7.0.2090
 AIR SDK & Compiler (Mac)  3.7.0.2100
 AIR SDK & Compiler (Win)  3.7.0.2090

已知問題

  • 在某些情況下,有些新版的 AMD 圖像處理單元驅動程式會出現顯示問題 (3431502)
  • 網路攝影機無法與 Microsoft Kinect 一起使用 (3482709)
  • 在 AIR for iOS 中,無法封裝當地語系化的 SWF 名稱 (3518195)
  • 在 AIR for iOS 中,將焦點放在 Spark TextArea 組件可能會造成文字截斷 (3514889)
  • AIR 安裝對話方塊中冗長的應用程式說明會造成按鈕無法顯示 (3515305)
  • 重複播放 FLVPlayback 視訊時稍有延遲 (3515066)
  • 發佈時,縮小的大型點陣圖無法正確顯示 (3520589)
  • 在 AIR 上,自訂快顯選單項目觸發額外事件 (3493614)
  • 在 Chrome 瀏覽器中,無法在執行階段替換麥克風 (3493587)
  • 在 Internet Explorer 中,當 flash 內容捲動出檢視外時,音效可能會變得混亂 (3520586)
  • 當您使用 AEC 連接強化麥克風時,AAC 音效會變得扭曲 (3523551)

安全性增強功能

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

新功能:使用原則

防止共享物件的雲端備份 (iOS)

在目前的 iOS AIR 應用程式中,開發人員無法防止本機共享物件資料備份到 Apple iCloud。在 AIR 3.7 中,SharedObject ActionScript 類別引進了一個新的靜態屬性,名為「preventBackup」,將可讓開發人員解決這項限制。這個屬性只能與 3.7 或更新版本的命名空間 (swf-version=>20) 一起使用。將這個屬性設定為 true 將可防止備份所有共享物件。屬性的預設值為 false,而且這個屬性將只適用於具備 iOS 5.1 或更新版本的裝置。

var mySO:SharedObject;
mySO = SharedObject.getLocal("test");
mySO.data.userName = "developer";
mySO.data.itemNumbers = new Array(1,2,3);
SharedObject.preventBackup = true;
mySO.flush();


針對選取的裝置使用 CPU 顯示模式,其他則使用 GPU (iOS)

我們已經為 iOS 裝置加入一個新標籤 <forceCPURenderModeForDevices>,可針對一組指定的 iOS 裝置強制執行 CPU 顯示模式,並針對所有其餘裝置使用 GPU renderMode。當 GPU 顯示模式在某些低階裝置 (例如 iPad1 和 iPod4) 造成記憶體不足時,這個功能可以派上用場。
例如,如果指定 <renderMode> GPU </renderMode> 和 <forceCPURenderModeForDevices> iPhone1 iPad1 </forceCPURenderModeForDevices>,則 iPad1 和 iPhone1 以外的所有 iOS 裝置將會有 renderMode GPU。 
請注意,這個標籤目前僅適用於 iOS。標籤必須加到 iPhone 標籤底下的平台特定區段。

<iPhone>
    <InfoAdditions>
      <![CDATA[
         <key>UIDeviceFamily</key>
         <array>
           <string>1</string>
           <string>2</string>
         </array>
         <key>UIStatusBarStyle</key>
         <string>UIStatusBarStyleBlackOpaque</string>
         <key>UIRequiresPersistentWiFi</key>
         <string>YES</string>
      ]]>
    </InfoAdditions>
    <forceCPURenderModeForDevices> iPhone3,1 iPad </forceCPURenderModeForDevices>
</iPhone>


標籤 <forceCPURenderModeForDevices> 已經加到 iPhone 標籤底下,並且接受以空格分隔的裝置機型名稱清單。下面列出部分有效的裝置機型名稱。

"iPod4,1"   // iPod Touch Fourth Generation
"iPod5,1"   // iPod Touch Fifth Generation
"iPhone2,1" // iPhone 3GS
"iPhone3,1" // iPhone 4
"iPhone3,2" // iPhone 4 CDMA
"iPhone4,1" // iPhone 4S
"iPhone5,1" // iPhone 5
"iPad1,1"   // iPad
"iPad2,1"   // iPad 2
"iPad2,2"   // iPad 2 (GSM)
"iPad2,3"   // iPad 3 (CDMA)
"iPad2,4"   // iPad 3 (CDMAS)
"iPad2,5"   // iPad Mini Wifi
"iPad3,1"   // iPad 3 (WIFI)
"iPad3,2"   // iPad 3 (CDMA)
"iPad3,3"   // iPad 3 GSM
"iPad3,4"   // iPad 4 (Wifi)


從外部裝載次要 SWF 檔案 (iOS)

應用程式開發人員現在可以在外部伺服器上裝載他們的次要 SWF 並根據其應用程式邏輯在需要時加以載入。對於在 AOT 模式中具有任何 ABC 程式碼、過去只適用於本機封裝之 SWF 的次要 SWF,現在也可用於從外部載入 SWF。
開發人員必須將載入器之 URLRequest 的 URL 變更為外部裝載之去除的 SWF。下列是使用這個功能的範例 URL 要求:

private var externalSwfUrl:String= "http://www.xyz.com/ExternalSwf.swf";
private var urlRequest:URLRequest = new URLRequest(externalSwfUrl);

若要啟用這個功能,開發人員必須指定將包含 SWF 檔案詳細資料的文字檔加以去除並從外部裝載。開發人員必須以行分隔的方式指定要從外部裝載在這個文字檔內的 SWF 路徑。在範例 .txt 檔案內指定 SWF 檔案的格式如下:

assets/Level1.swf
assets/Level2.swf
assets/Level3/asset/Level3.swf

這個文字檔必須列在應用程式描述器內 <iPhone> 標籤底下的 <externalSwfs> 標籤中,如下所示:

<iPhone>
       .
       .
       <externalSwfs>assets/SampleSWFInfoFile.txt</externalSwfs>
       .
       .
</iPhone>

在進行 ADT 封裝期間,開發人員必須指定該文字檔,並且如同資源般一起指定文字檔中所指定的一組 SWF。使用這個功能的範例 ADT 命令如下:

adt -package -target ipa-app-store -provisioning-profile <Provisioning Profile> -storetype pkcs12 -keystore <Certificate> -storepass <Password> ResultantIPA.ipa SampleMainSwf-app.xml SampleMainSwf.swf assets/SampleSWFInfoFile.txt assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf

在進行 IPA 封裝期間,ADT 會從範例文字檔內指定的所有子 SWF 中擷取 Actionscript 程式碼,然後將程式碼加入最終執行檔並將去除的 SWF 移入在目前工作目錄中建立的「externalStrippedSwfs」資料夾。「externalStrippedSwfs」資料夾內的目錄結構會維持與文字檔內指定的目錄結構相同。產生的去除 SWF 可以從外部裝載在網站伺服器上。
工作範例 Actionscript 程式碼會從外部伺服器載入使用上述工作流程衍生的次要 SWF,如下所示:

package
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.net.URLRequest;
    import flash.system.ApplicationDomain;
    import flash.system.LoaderContext;
 
    public class SampleMainSwf extends Sprite
    {
        private var externalLoader:Loader;
        private var url:String= "http://www.xyz.com/Level1.swf";
        private var urlRequest:URLRequest = new URLRequest(url);
        private var ldrContext:LoaderContext;
 
        public function SampleMainSwf()
        {
            externalLoader = new Loader();
            externalLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
            externalLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
            ldrContext=new LoaderContext(false,ApplicationDomain.currentDomain,null);
 
            try
            {
                externalLoader.load(urlRequest, ldrContext);
            }
            catch(e:Error)
            {
                trace("Error ID : "+e.errorID+"\nError Message : "+e.message);
            }
        }
 
        private function completeHandler(e:Event):void
        {
            addChild(externalLoader);
        }
 
        private function errorHandler(e:IOErrorEvent):void
        {
            trace("In IO ErrorEvent Handler");
        }
 
    }
}

注意
1. 目前的 Flash Builder 4.7/Flash Professional CS6 版本不支援這個功能。若要產生去除的 SWF 以供外部裝載之用,請使用 ADT 封裝命令列。
2. 載入 Flex 次要 SWF 會導致應用程式發生毀損。

GameInput API (Android)

GameInput API 是可讓應用程式與連接的遊戲輸入裝置 (搖桿、遊戲台和遊戲棒等) 進行通訊的介面。各種遊戲輸入裝置提供不同的功能和控制項。只有在 OS 4.1 或更新版本上執行的 Android 裝置才支援這個 API。這個 API 經過實作,或許可以與不同 (及可能不明) 的遊戲輸入裝置類型搭配運作。
這個功能只能與命名空間 3.7 或更新版本一起使用,並且至少需要 SWF 第 20 版。

private var gameInput:GameInput;
    public function TestGameInput()
    {
        trace("GameInput.isSupported - "+ GameInput.isSupported);
        trace("GameInput.numDevices - "+ GameInput.numDevices);
 
        gameInput = newGameInput();
        gameInput.addEventListener(GameInputEvent.DEVICE_ADDED, inputDeviceAddedEvent);
        gameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, inputDeviceRemovedEvent);
 
        function inputDeviceRemovedEvent(e:GameInputEvent):void
        {
            trace("inputDeviceRemovedEvent - "+ e.device);
        }
 
        function inputDeviceAddedEvent(e:GameInputEvent):void
        {
            trace("inputDeviceAddedEvent - "+ e.device);
            getDeviceInformation(e.device);
        }
 
        function getDeviceInformation(device:GameInputDevice):void
        {
            trace("device.enabled - "+ device.enabled);
            trace("device.id - "+ device.id);
            trace("device.name - "+ device.name);
            trace("device.numControls - "+ device.numControls);
            trace("device.sampleInterval - "+ device.sampleInterval);
 
            for(var i:Number=0; i < device.numControls; i++)
            {
                var control:GameInputControl = device.getControlAt(i);
                getControlInformation(control);
                control.addEventListener(Event.CHANGE, changeEvent);
            }
        }
 
        function changeEvent(e:Event):void
        {
            var control:GameInputControl = e.target as GameInputControl;
            getControlInformation(control);
        }
 
        function getControlInformation(control:GameInputControl):void
        {
            trace("control.device - "+ control.device);
            trace("control.value - "+ control.value);
            trace("control.minValue - "+ control.minValue);
            trace("control.maxValue - "+ control.maxValue);
            trace("control.id - "+ control.id);
 
        }
    }

編寫原則

針對 Flash Player 11.7 進行編寫

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

  • 下載適用於 Flash Player 11.7 的新 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 第 20 版為目標
  • 開啟專案的「屬性」面板 (以滑鼠右鍵按一下並選擇「屬性」)。選取左側清單中的「ActionScript 編譯器」。
  • 增加至「額外編譯器引數」輸入:-swf-version=20。這可確保輸出的 SWF 會以 SWF 第 20 版為目標。如果您在命令列上編譯,而不在 Flash Builder 中進行,則必須加入相同的編譯器引數。
  • 確定您的瀏覽器中已經安裝新版的 Flash Player 11.7 組建。

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

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

報告錯誤

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

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

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

系統需求

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

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

Runtime 版本記錄


 發行日期 Runtime 版本 安全性增強功能
2013 年 5 月 21 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.7.700.203
Flash Player (Chrome):11.7.700.203
 - 
2013 年 5 月 14 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.7.700.202
AIR 桌上型電腦版本、iOS、Android:3.7.0.1860
AIR SDK & Compiler:3.7.0.1860
 APSB13-14
2013 年 4 月 9 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.7.700.169
適用於 Chrome 的 Flash Player:11.7.700.179
AIR 桌上型電腦版本、iOS:11.7.0.1530
AIR Android:11.7.0.1660
AIR SDK:11.7.0.1530
AIR SDK & Compiler:11.7.0.1530
 APSB13-11
2013 年 3 月 12 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.6.602.280
AIR Windows、Mac、Android、iOS:3.6.0.6090
AIR SDK:3.6.0.6090
AIR SDK & Compiler:3.6.0.6090
 APSB13-09
2013 年 2 月 26 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.6.602.171  APSB13-08
2013 年 2 月 12 日 適用於桌上型電腦版本 (Windows) 的 Flash Player:11.6.602.168
適用於桌上型電腦版本 (Mac) 的 Flash Player:11.6.602.167
AIR Windows、Mac、Android、iOS:3.6.0.597
AIR SDK & Compiler:3.6.0.599
 APSB13-05
2013 年 2 月 7 日 適用於桌上型電腦版本 (Windows、Mac) 的 Flash Player:11.5.502.149  APSB13-04
2013 年 1 月 8 日 Flash Player 桌上型電腦版本 (Windows、Mac):11.5.502.146
AIR (Windows、Mac、行動裝置版本):3.5.0.1060
AIR SDK:3.5.0.1060
 APSB13-01
2012 年 12 月 11 日 Flash Player 桌上型電腦版本 Windows:11.5.502.135
Flash Player 桌上型電腦版本 Mac:11.5.502.136
AIR Windows、Android:3.5.0.880
AIR Mac:3.5.0.890
 APSB12-27
2012 年 11 月 6 日 Flash Player 桌上型電腦版本 (Windows、Mac):11.5.502.110
AIR (Windows、Mac、行動裝置版本):3.5.0.600
AIR SDK:3.5.0.600
 APSB12-24
2012 年 10 月 8 日 Flash Player 桌上型電腦版本 (Windows、Mac):11.4.402.287
AIR (Windows、Mac、行動裝置版本):3.4.0.2710
AIR SDK:3.4.0.2710
 APSB12-22
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 文章。

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