Behobene Probleme

Freigabedatum: 08.10.2012

  • Stürzt beim Navigieren zu und aus Flash-Inhalten in Internet Explorer ab (3328165)
  • Eine Anwendung kann unter iOS ohne implementierte Finalisierungsfunktion nicht mit einer ANE (native Erweiterung) verpackt werden. (3325320)
  • Das Verpacken schlägt mit einer Nullzeigerausnahme fehl, wenn eine IPA allein mit der Standardimplementierung in der ANE unter iOS verpackt wird. (3325321)
  • Datenbankdaten werden bei jedem Start in iOS Simulator gelöscht. (3329309)
  • WLAN-Debuggen unter iOS: Das Debuggen unter iOS funktioniert nicht, wenn die Netzwerkschnittstelle als „Standard“ für Playerziel AIR3.4 gewählt wird (3325323)

Freigabedatum: 21.08.2012

  • Netstream stürzt beim Trennen vorübergehend ab (3193417)
  • Problem beim Stoppen des Liveaudiostreams unter AIR Android (3188340)
  • drawWithQuality() rendert Filter auf Android-Geräten nicht korrekt (3224928)
  • Clipboard.generalClipboard.setData funktioniert nicht unter iOS (3226045)
  • Einige FLV-Videoinhalte werden in Flash Player unter Windows nicht abgespielt (3187569)
  • In Flash Player-gestützten Apps wird in Firefox unter Windows nur rechtsseitiges Audio abgespielt (3289279)
  • Maussperrfunktion ist nach dem Wechsel in den interaktiven Vollbildmodus deaktiviert (3174344)
  • [iOS5] Textfelder mit eingebetteten Schriftarten erscheinen auf mobilen Geräten nicht korrekt (3161138)
  • Bei einigen Live-Streaming-Inhalten friert der erste Frame ein (3207896)
  • Anwendungssymbole für 50X50, 100X100, 1024X1024 werden jetzt für iOS-Anwendungen im Anwendungsdeskriptor unterstützt (3217144) 
  • Anwendungen, die native Erweiterungen verwenden, stürzen unter iOS manchmal ab, wenn bestimmte externe Bibliotheken verwendet werden, zum Beispiel Libxml2.dylib (3226974) 
  • Leichte Abweichungen sind zu beobachten, wenn ein Startbild mit der Auflösung 768 x 1004 oder 1024 x 748 in einer iPad-Vollbildanwendung verpackt wird. (3230762). Die neuen Richtlinien zur Verwendung von Images finden Sie hier.
  • H264-Videos unter iOS stürzen beim Wechsel zwischen zwei NetStreams an einem StageVideo-Objekt ab (3206438)
  • Problem mit CameraRoll.browseForImage() verursacht Transparenzverluste, die in weißer Farbe resultieren (3291312)

Neue Funktionen

Freigabedatum: 08.10.2012

iOS6 SDK befindet sich ab dem 19.09.2012 nicht mehr in der Beta-Phase.

Keine neuen Funktionen in dieser Version.

Freigabedatum: 21.08.2012

  • ActionScript-Worker (Flash Player)
  • Sandbox-Bridge-Unterstützung (Flash Player)
  • Lizenzierungsunterstützung: Flash Player-Premium-Funktionen für Spiele (Flash Player)
  • Eingeschränktes Profil („Constrained“) von Stage3D für verbesserte GPU-Reichweite (Flash Player und AIR)
  • LZMA-Unterstützung für ByteArray (Flash Player und AIR)
  • StageVideo-Verbesserungen für attachCamera/Camera (Flash Player und AIR)
  • Komprimierte Textur mit Alpha-Unterstützung für Stage3D (Flash Player und AIR)
  • DXT-Kodierung (Flash Player und AIR)
  • Veraltete Carbon-APIs für AIR (AIR)
  • Direkte Bereitstellung in AIR mit ADT (AIR)
  • Push-Benachrichtigungen für iOS (AIR)
  • Ambient-AudioPlaybackMode (AIR)
  • Ausnahme-Unterstützung in nativen Erweiterungen für iOS (AIR)
  • Neue Option in ADT zum Auflisten der angeschlossenen Geräte (AIR)
  • ADT-Option zum Lösen von ANE-Symbolkonflikten unter iOS (AIR)

Eine vollständige Liste der Funktionen in Flash Player und AIR, einschließlich der Funktionen, die in früheren Versionen eingeführt wurden, finden Sie im Dokument hier.

Veröffentlichte Versionen

Produkt Veröffentlichte Version
 Flash Player Desktop (Windows® /Mac)  11.4.402.287
 AIR (Windows®, Mac, Mobil)  3.4.0.2710
 AIR SDK  3.4.0.2710

Bekannte Probleme

Freigabedatum: 21.08.2012
  • transformVector() von Matrix3D, transformiert w-Komponente falsch (3190677)
  • [iOS] Unter iOS 4.3 werden komprimierte Cubemaps mit Alpha nicht korrekt gerendert (3282166)
  • navigateToURL mit hohen ASCII-Zeichen funktioniert nicht korrekt für AIR-Desktop-Anwendungen (3161093)
  • [iOS] Bei einigen Inhalten schlägt die Installation einer .ipa-Datei mit AIR 3.4 gelegentlich fehl mit Installationsfehler: PackageExtractionFailed (3220974)
  • Wenn beim Verpacken einer Anwendung für iOS ein –hideAneLibSymbols-Kennzeichner verwendet wird, sollten in der ANE-Datei platform.xml nur die Framework- und Bibliotheksverknüfpungsoptionen sowie Optionen wie -ios_version_min verwendet werden
Adobe setzt die Arbeit mit dem iOS 6 Beta-SDK sowie die Problembehebung fort. Aktuelle bekannte Probleme sind:
  • Berechtigungsdialog für Geolocation wird in iOS 6 Beta nicht angezeigt (3291688)
  • AIR-Anwendungen, die mit AIR 3.4 SDK & iOS 6 Beta SDK verpackt wurden, unterstützen AutoOrients für die umgedrehte Ausrichtung bei iPod und iPhone nicht (3286288)
  • Eine Anwendung, die mit AIR 3.4 SDK und iOS 6 Beta SDK verpackt wurde, unterstützt das aspectRatio-Tag bei iOS 5.1-Geräten nicht (3286320)

Sicherheitserweiterungen

Sicherheitsbulletin Betroffene Produkte
 APSB12-22  Flash Player Desktop Windows® & Mac

 Flash Player AndroidTM

Neue Funktionen: Übersicht


ActionScript-Worker

  • Mit der Einführung von Workern in ActionScript und die Flash-Laufzeitumgebung können Flash-Entwickler jetzt bestimmte Aufgaben wie Operationen mit hoher Latenzzeit und lang andauernde Berechnungen an Hintergrund-Worker abgeben. Diese Hintergrund-Worker werden gleichzeitig ausgeführt, um Computerressourcen besser zu nutzen und ein Einfrieren der Benutzeroberfläche zu vermeiden. 
  • Hinweis: Um ActionScript-Worker optimal zu nutzen und um Worker debuggen zu können, ist die nächste Version von Flash Builder erforderlich. Die nächste Version von Flash Builder wird als öffentliche Beta-Version im August verfügbar sein.
  • Hinweis: Die Unterstützung von gemeinsam genutzten Speicher (ByteArray.shareable) wird in einer zukünftigen Version von Flash Player verfügbar sein.

Sandbox-Bridge-Unterstützung

  • Durch Sandbox-Bridging können bestimmte ActionScript-Objekte oder -Funktionen in der domänenübergreifenden Kommunikation von SWF zu SWF verfügbar gemacht werden. Diese Funktion ist bereits in AIR verfügbar und wird in dieser Version nach Flash Player portiert.

Lizenzierungsunterstützung: Flash Player-Premium-Funktionen für Spiele (Flash Player)

  • Mit der Einführung von Premium-Funktionen für Spiele können jetzt Nicht-ActionScript-Arbeitsabläufe Flash Player als Ziel verwenden. Diese Version unterstützt die Lizenzkontrolle für die Premium-Funktionen der XC APIs (die kombinierte Verwendung der Domänenspeicher-API und der API für Stage3D-Hardwarebeschleunigung) in Flash Player. Diese APIs werden von einigen Drittanbietertools wie Unity und dem C/C++-Compiler aus dem Adobe-Projekt „Alchemy“ verwendet. Weitere Informationen finden Sie unter www.adobe.com/go/fpl_de.

Eingeschränktes Stage3D-Profil für verbesserte GPU-Reichweite

  • Flash Player beschränkt die Verwendung der Hardwarebeschleunigung basierend auf dem Alter des verwendeten Grafikkartentreibers. In früheren Versionen wurde die Unterstützung für Treiber, die älter als vom 1. Januar 2008 sind, ausgeschlossen. In dieser Version wird dieses Grenzdatum auf den 1. Januar 2006 ausgedehnt. Inhalte, die wmode=direct (oder renderMode=direct für AIR) verwenden, sollten nach Möglichkeit hardwarebeschleunigt sein, wenn der Grafiktreiber neuer als vom 1.1.2006 ist. Dies gilt für Stage3D- und [StageVideo|StageVideo]-APIs. Zusätzlich haben wir ein neues Profil mit dem Namen „constrained“ (eingeschränkt) für Stage3D hinzugefügt, sodass Sie Ihre Inhalte auf den zuvor auf der Blacklist geführten Intel® GMA-Chipsätzen hardwarebeschleunigt ausführen können. Weiter unten finden Sie weitere Informationen zu diesem neuen Profil und seiner Verwendung.

LZMA-Unterstützung für ByteArray

  • Neben der zlib-Komprimierung von ByteArray wird ein zusätzlicher Komprimierungstyp eingeführt, der auf LZMA basiert, um Daten innerhalb eines ByteArray mit ByteArray.compress() und ByteArray.uncompress() zu komprimieren.

Komprimierte Textur mit Alpha-Unterstützung für Stage3D (Flash Player und AIR)

  • Transparente Bilder werden jetzt für komprimierte Texturen unterstützt (ATF-Dateiformat).

StageVideo attachCamera/Camera-Verbesserungen

  • Diese Eigenschaft stellt eine neue Methode für StageVideo-Objekte bereit, die dem ActionScript-Code ermöglicht, den Videostream von der Kamera an ein StageVideo-Objekt zu leiten und so die GPU anstelle des Rasterns für das Rendern zu nutzen. Auf diese Weise kann der Player einen Videostream von der Kamera viel schneller verarbeiten, wenn GPU-Beschleunigung verfügbar ist.

DXT-Kodierung

  • Diese Eigenschaft ermöglicht die Kodierung von unkomprimierten Texturen in das DXT-Format während der Laufzeit, sodass die Textur als komprimierte DXT-Textur an die GPU hochgeladen werden kann.
    Verfügbar auf dem Desktop für Flash Player 11.4 und AIR 3.4

Veraltete Carbon-APIs für AIR

  • Ab Mac OS X 10.8 werden Carbon-APIs nicht mehr von Apple unterstützt. Um keine Ungleichheit mit Mac OSX 10.8 herzustellen, wurden diese APIs und anderer veralteter Code daher in dieser Version aus AIR entfernt.
Direkte AIR-Bereitstellung mit ADT
  • Diese neue Eigenschaft ermöglicht es Entwicklern, eine AIR-Anwendung auf iOS-Geräten bereitzustellen, ohne dass iTunes oder XCode verwendet werden muss. Bitte beachten Sie, dass iTunes 10.5.0 oder höher auf dem Computer des Benutzers installiert sein muss, damit diese Funktion verwendet werden kann.

iOS-Push-Benachrichtigungen

  • Diese Funktion verwendet APNS (Apple Push Notification Service) und einen Provider (Drittparteiserver, der mit APN kommuniziert), um Benachrichtigungen zu generieren. Das neue Paket flash.notifications wurde eingeführt. Die Zustellung von Apple-Push-Benachrichtigungen ist vollständig vom APNS abhängig, und APNS garantiert die Zustellung von Push-Benachrichtigungen nicht. Apple empfiehlt auch, jedes Mal Push-Benachrichtigungen zu abonnieren, wenn eine Anwendung gestartet wird. Jedes Mal, wenn die Client-App Push-Benachrichtigungen abonniert, stellt der APNS der Client-App eine Token-ID bereit. Diese Token-ID sollte an den Drittanbieterserver oder Provider gesendet werden, der die Remote-Benachrichtigungen sendet.

Ambient-AudioPlaybackMode

  • In AIR 3.4 steht Benutzern neben VOICE (Sprache) und MEDIA ein weiterer AudioPlaybackMode zur Verfügung, nämlich AMBIENT (Umgebung). Dieser neue AudioPlaybackMode ermöglicht Benutzern, bei ihrer Anwendung die Berücksichtigung des Hardware-Stummschalters, den es bei iPhone und iPad gibt, zu erzwingen. Ein Beispiel für die Verwendung des Ambient-Wiedergabemodus ist eine Spiel-App, bei der der Benutzer den Spielsound stummschalten kann und im Hintergrund mit einer anderen App Musik hören kann. Im Ambient-Modus respektiert Audio den Hardware-Stummschalter nur bei iOS-Geräten. Bei AndroidTM-Geräten entspricht der Ambient-Modus dem Media-Modus.

Ausnahme-Unterstützung in nativen Erweiterungen für iOS

  • Eine native Erweiterung für iOS kann jetzt sowohl C++- als auch Objective-C-Ausnahmen verwenden. Es ist Aufgabe der Erweiterung, alle im Code ausgegebenen Ausnahmen abzufangen. Die Laufzeitumgebung fängt die von Erweiterungen ausgegebenen Ausnahmen nicht ab.

ADT-Option zum Auflisten der angeschlossenen mobilen Geräte

  • ADT wurde einen neue Option, „-devices“, hinzugefügt, um die angeschlossenen iOS/AndroidTM-Geräte aufzulisten. Benutzer können diese Option nutzen, anstatt adb für das Auflisten der AndroidTM-Geräte und idb für das Auflisten der iOS-Geräte zu verwenden. Bitte beachten Sie, dass iTunes 10.5.0 oder höher auf dem Computer des Benutzers installiert sein muss, damit diese Funktion verwendet werden kann.

ADT-Option zum Lösen von ANE-Symbolkonflikten unter iOS

  • Da Anwendungsentwickler möglicherweise mehrere nativen Erweiterungen verwenden, die aus verschiedenen Ressourcen stammen, kann ein Symbolname, der in beiden ANEs vorkommt, zu einem Fehler beim Verpacken führen, der anzeigt, dass ein Symbol in den Objektdateien doppelt vorkommt, oder zur Laufzeit einen Absturz verursachen. Um dieses Problem zu umgehen, wurde eine neue ADT-Option, „-hideAneLibSymbols“, eingeführt, die beim Verpacken der Anwendung angegeben werden kann. Die Option kann die Werte „yes“ oder „no“ annehmen, wobei mit „yes“ die Bibliothekssymbole jeder ANE vor den anderen ANEs verborgen werden.

Neue Funktionen: Nutzungsrichtlinien

Erste Schritte mit Workern

Um mit der Arbeit mit Workern zu beginnen, sehen Sie sich die Beispiel in der Datei flashplayer11-4_p1_ex_concurrency.zip an.

Hinweis

Nachfolgend sind die Auswirkungen auf den Arbeitsspeicher („Memory Footprint“) pro Worker unter Mac OS und Windows® aufgeführt:

Anzahl der Worker

Mac BookPro
Mac OS X 10.7.3 
2,4 GHz Intel® CoreTM i7 
8 GB RAM 
Mac OSX 10.7 
Speicher (MB)

PC 
Windows® 7 32-Bit 
Intel® Xeon Quad Core 3,2 GHz 
2048 MB RAM 
Windows® 7 
Speicher (MB)

Lenovo T61 Laptop 
Windows® XP 
Intel® CoreTM Duo Core 2,2 GHz 
2014 MB RAM 
Windows® XP 
Speicher (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

Wenn Code im Kontext eines nicht-ursprünglichen Workers ausgeführt wird (d. h. im Hintergrund), unterscheiden sich einige API-Verhaltensweisen der Flash-Laufzeitumgebung von denen des ActionScript-Codes, der im Hauptthread ausgeführt wird. Die folgenden APIs verhalten sich anders, wenn sie aus einem Hintergrund-Worker verwendet werden.

Nicht funktionierende APIs

Die folgenden APIs sind nicht aus einem Hintergrund-Worker heraus verfügbar. Jeder Versuch, eine Instanz dieser APIs zu konstruieren, führt zu einem IllegalOperationError mit der Meldung „Diese Funktion ist in diesem Kontext nicht verfügbar“, die errorID ist immer dieselbe, sodass Entwickler diesen Wert einordnen können.

  • flash.desktop.Clipboard // Aufruf des Kontruktors gibt den Fehler aus, Aufruf von generalClipboard gibt null zurück
  • flash.desktop.NativeDragManager // isSupported gibt „false“ zurück
  • flash.desktop.Updater // isSupported gibt „false“ zurück
  • flash.display.NativeMenu // isSupported gibt „false“ zurück
  • flash.display.NativeWindow // isSupported gibt „false“ zurück
  • flash.display.ToastWindow // kann nicht auf die Instanz zugreifen, da stage.window nie definiert ist
  • flash.display.Window // kann nicht auf die Instanz zugreifen, da stage.window nie definiert ist
  • flash.external.ExtensionContext // createExtensionContext() gibt immer null zurück oder gibt einen Fehler aus
  • flash.external.ExternalInterface // available gibt „false“ zurück
  • flash.html.* // HTMLLoader.isSupported gibt „false“ zurück
  • flash.media.CameraRoll // supportsAddBitmapData und supportsBrowseForImage geben „false“ zurück
  • flash.media.CameraUI // isSupported gibt „false“ zurück
  • flash.media.StageWebView // isSupported gibt „false“ zurück
  • flash.net.drm.* // DRMManager.isSupported gibt „false“ zurück
  • flash.printing.* // PrintJob.isSupported gibt „false“ zurück
  • flash.security.XMLSignatureValidator // isSupported gibt „false“ zurück
  • flash.system.IME // isSupported gibt „false“ zurück
  • flash.system.SystemUpdater // Aufruf des Konstruktors gibt einen Fehler aus
  • flash.text.StageText // Aufruf des Konstruktors gibt einen Fehler aus
  • flash.ui.ContextMenu // isSupported gibt „false“ zurück
  • flash.ui.GameInput // isSupported gibt „false“ zurück
  • flash.ui.Mouse // alle Methoden sind No-ops; das Einstellen der 'cursor'-Eigenschaft ist ein No-op

Veränderte Verhaltensweisen von APIs

Die folgenden APIs weisen ein verändertes Verhalten auf, wenn sie von einem Hintergrund-Worker aus ausgeführt werden. Einige Methodenaufrufe sind No-ops (Leerbefehle), während andere einen IllegalOperationError oder einen entsprechenden Fehler ausgegeben, der mit der dokumentierten API konsistent ist. Rückgabewerte sollten mit der Dokumentation so weit wie möglich konsistent sein. Wenn eine Methode beispielsweise unter normalen Umständen ein Array mit Elementen darin zurückgibt, gibt sie bei der Ausführung aus einem Hintergrund-Worker heraus ein leeres Array zurück.

  • flash.accessibility.Accessibilty
    • active // gibt immer „false“ zurück
    • updateProperties(); // No-op
  • flash.desktop.NativeApplication**-Eigenschaften

·          

  • flash.display.Stage
    • allowsFullScreen // gibt immer „false“ zurück
    • stage3Ds // gibt immer einen leeren Vektor zurück
    • stageVideos // gibt immer einen leeren Vektor zurück
    • supportsOrientationChange // gibt immer „false“ zurück
    • wmodeGPU // gibt immer „false“ zurück
  • flash.filesystem.File
    • browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // No-op
  • flash.net.FileReference** browse(), download(), save() // No-op; gibt immer „false“ zurück
  • flash.net.FileReferenceList** browse() // No-op; gibt immer „false“ zurück
  • flash.system.System
    • ime // gibt immer null zurück
    • exit() // erzwingt das Beenden und Herunterfahren dieses Hintergrund-Workers
    • setClipboard() // No-op
  •  
    • Methoden
      • activate(), clear(), copy(), cut(), paste(), selectAll() // No-op
      • exit() // erzwingt das Beenden und Herunterfahren dieses Hintergrund-Workers
    • Ereignisse
      • Nur das Beenden-Ereignis wird unterstützt – dieses Ereignis wird abgesetzt, wenn der Worker herunterfährt (dies passiert entweder mit Aufrufen von Lifecycle-Methoden oder wenn der „Haupt“-Worker herunterfährt, d. h. die Laufzeitumgebung wird beendet; nicht vom Hintergrund-Worker abzubrechen)
    •  
      • supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // geben alle „false“ zurück
      • activeWindow // gibt null zurück
      • autoExit // Setter ist ein No-op
      • idleThreshold // Setter ist ein No-op
      • openedWindows // gibt ein leeres Array zurück []
      • systemIdleMode // Setter ist ein No-op

Erweiterte GPU-Reichweite - Eingeschränktes Stage3D-Profil

Der neue Parameter „profile“ wurde für Context3D eingeführt. Dieser Parameter ist in der Stage3D.requestContext3D()-Funktion verfügbar; Sie können ihm einen von zwei Werten geben: Context3DProfile.BASELINE („baseline“), womit das typische Context3D zurückgegeben wird, das aus früheren Versionen bekannt ist, oder Context3DProfile.BASELINE_CONSTRAINED („baselineConstrained“), womit eine neue Art Context3D zurückgegeben wird, das mit Hardwarebeschleunigung auf zuvor nicht unterstützten GPUs ausgeführt werden kann. Eingeschränkte (Constrained) Profile ermöglichen es Autoren, Stage3D-Inhalt zu erstellen, der ältere Systeme mit Grafikkarten wie Intel® GMA 900/950 unter Windows® als Ziel verwenden kann. Der Nachteil, der beim Abzielen auf weniger leistungsfähige Hardware mit dem eingeschränkten Profil in Kauf genommen werden muss, besteht darin, dass Stage3D-Fähigkeiten eingeschränkt sind, um zu gewährleisten, dass Inhalte unter Verwendung dieser Hardware gut ausgeführt werden können. Karten wie die GMA 900/950 unterstützen nur die Pixel/Vertex-Shader-Version 2.0, die die folgenden Einschränkungen für Stage3D im Profil „Constrained“ erzwingt:

  • Begrenzt auf 64 ALU- und 32-Texturanweisungen pro Shader.
  • Nur 4 Texturleseanweisungen pro Shader.
  • Begrenzt auf kleinere Mengen von constants/varying/temps pro Shader.
  • Keine Unterstützung für Prädikatregister. Dies betrifft sln/sge/seq/sne und muss durch mov/cmp-Verbundanweisungen ersetzt werden, die mit ps_2_0 verfügbar sind (dies erfolgt zu dem Preis, dass im Vergleich mit ps_2_x mehr Anweisungsplätze verwendet werden).
  • Der Context3D-Hintergrundpuffer muss immer innerhalb der Grenzen der Bühne sein.
  • Innerhalb einer Flash Player-Instanz ist jeweils nur eine Instanz von Context3D zulässig, die im eingeschränkten Profil („constrained“) ausgeführt wird.
  • Wie bei mobilen Inhalten werden die klassischen Flash-Anzeigelistenelemente nicht aktualisiert, während eingeschränkte Stage3D-Inhalte sichtbar sind, es sei denn, Context3D.present() wird aufgerufen.

„Profile“ ist der zweite optionale Parameter der requestContext3D-Methode. Entwickler können das „baselineConstrained“-Profil anfordern, um Context3D im eingeschränkten Modus zu erhalten, wie in der folgenden API zu sehen: function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
Beispiel:

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

Direkte AIR-Bereitstellung mit ADT

Installation:
Um eine IPA-Datei auf einem Gerät zu installieren, verwenden Sie den folgenden Befehl:
adt -installApp -platform ios -device <deviceID> -package <ipa-file>
Deinstallation:
Um eine IPA-Datei von einem Gerät zu deinstallieren, verwenden Sie den folgenden Befehl:
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id>
<deviceID> Ihres angeschlossenen Geräts wäre der ‘Griff‘-Wert, der durch den folgenden Befehl aufgelistet wurde:
@SDKLocation/bin/adt –devices –platform ios
<app-id> wird in der Anwendungsbeschreibungsdatei (app.xml) innerhalb des <id>-Tags angegeben. Wenn Sie Ihr Projekt mithilfe von Flash Builder erstellen, wäre dies standardmäßig der Name Ihrer App. 

Wenn nur ein Gerät an den Desktopcomputer angeschlossen ist, lassen Sie das Argument „-device <GeräteID>“ aus. Die Anwendung wird dann auf dem verbundenen Gerät installiert bzw. deinstalliert.
adt -installApp -platform ios -package <ipa-file> 

iOS-Push-Benachrichtigungen

1)     Der App-Kennzeichner (id-Tag) in der app-xml sollte mit dem Anwendungskennzeichner des mobilen Provisioning-Zertifikats identisch sein, das mit Push-Benachrichtigungen aktiviert ist.
2)     Schließen Sie die aps-environment-Berechtigung in Ihren Anwendungsdeskriptor ein:

<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>

Zum Senden der App an den App Store mit aktivierten Push-Benachrichtigungen muss die aps-environment auf „Produktion“ eingestellt werden. Der Entwickler muss das Provisioning-Profil mit aktivierten Push-Benachrichtigungen verwenden. Überprüfen Sie die Berechtigungen der signierten App mithilfe des folgenden Befehls.

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

3) Verwenden Sie die neu hinzugefügte flash.notification-Klasse in der Anwendung, um Unterstützung für Push-Benachrichtigungen zu aktivieren. Beispiel,

// 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
}

Im Bundle der Clientanwendung können die übersetzten Benachrichtigungsstrings für jede unterstützte Sprache gespeichert werden. Der Provider gibt die loc-key- und loc-args-Eigenschaften im APS-Wörterbuch der Benachrichtigungsnutzdaten an. Wenn das Gerät die Benachrichtigung erhält, verwendet es die APS-Wörterbucheigenschaften, um den für die aktuelle Sprache lokalisierten String zu suchen und zu formatieren, der dann für den Benutzer angezeigt wird.

Lokalisierte Strings müssen sich in der Datei „Localizable.strings“ im entsprechenden Ordner „<Sprache>.lproj“ befinden. Jeder Eintrag in dieser Datei verfügt über einen Schlüssel und einen lokalisierten Stringwert. Der String kann Formatangaben für die Ersetzung variabler Werte aufweisen. Wenn eine Anwendung nach einem bestimmten String fragt, erhält sie die Ressource, die für die aktuell vom Benutzer ausgewählte Sprache lokalisiert wurde.

Um lokalsierte Remotebenachrichtigungen zu erhalten, muss eine AIR-Anwendung in der Datei „Localizable.strings“ im Ordner „<Sprache>-/lproj“ innderhalb des IPA lokalisierte Schlüssel-Wert-Paare aufweisen. Um Localizable.strings zum IPA hinzuzufügen, muss der Entwickler lediglich den jeweiligen Ordner „<Sprache>.lproj“ wie folgt im ADT-Befehl einfügen:

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

Beachten Sie, dass sich der lproj-Ordner im aktuellen Verzeichnis befinden muss, damit ADT die Dateien im entsprechenden lproj-Ordner zusammenführen kann. Wenn der lproj-Ordner als „a/b/c/en.lproj“ angegeben ist, fügt ADT dies als „a/b/c/en.lproj“ hinzu und die lokalisierten Schlüssel-Wert-Paare sind für die Anwendung nicht zugänglich.

ADT-Option zum Auflisten der angeschlossenen mobilen Geräte

Sie können den folgenden Befehl verwenden, um Informationen über die verbundenen iOS/AndroidTM-Geräte abzurufen:

adt -devices -platform (android | ios)

Mit diesem Befehl wird eine Ausgabe wie die folgende produziert:

Liste der angeschlossenen Geräte:

Handle   Geräteklasse   Geräte-UUID                                                    Gerätename

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b iPhone von abc


Lizenzierungsunterstützung: Flash Player-Premium-Funktionen für Spiele (nur Flash Player)

Für die kombinierte Verwendung von Domänenarbeitsspeicher (von einigen Drittanbietertools und von dem C/C++-Compiler des Projekts „Alchemy“ verwendet) mit Stage3D-Hardwarebeschleunigung ist eine Lizenz erforderlich. Wenn Sie beide Funktionen zusammen verwenden, wird im Inhalts-Debugger von Flash Player (Debug Player) zur Information ein Wasserzeichen angezeigt. Diese Lizenzierungsanforderung gilt nicht für Inhalte, die Stage3D-Hardwarebeschleunigung ohne Domänenarbeitsspeicher (oder Domänenarbeitsspeicher ohne Stage3D) verwenden, und gilt nicht für Inhalte, die mit Adobe AIR bereitgestellt werden. 

Umgang mit Geräteverlust

Nicht lizenzierte Inhalte werden weiterhin ausgeführr, indem Stage3D automatisch zum Softwarerendern wechselt. Um sicherzustellen, dass der Inhalt den Verlust der Grafikkartenressource korrekt behandelt, verwenden Sie einen Listener für das Event.CONTEXT3D_CREATE-Ereigns am Stage3D-Objekt, um die Grafik Ihrer Inhalte neu zu initialisieren. Sie können ein Geräteverlustereignis simulieren, indem Sie context3D.dispose() aufrufen. (Jeglicher Stage3D-Inhalt sollte mit Geräteverlust umgehen können, der auch auftreten kann, wenn einComputer gesperrt wird oder der Bildschirmschoner aktiviert wird.)

ADT-Option zum Lösen von ANE-Symbolkonflikten unter iOS

Sie können den folgenden Befehl verwenden, um Anwendungen mit dieser Option zu verpacken:

 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? )

Zum Beispiel,

 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

Verwenden Sie den Wert „Yes“, um Symbolkonflikte zu vermeiden, und den Wert „No“, um dasselbe Verhalten wie vorher zu verwenden. Beachten Sie, dass diese Funktion in Flash Builder/Flash Professional noch nicht verfügbar ist.

DXT-Kodierung


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);


Komprimierte Texturen und 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);

Authoring-Richtlinien

Authoring für Flash Player 11.4

Um den neuen Flash Player zu verwenden, müssen Sie SWF-Version 17 als Ziel angeben, indem Sie ein zusätzliches Compiler-Argument an den Flex Compiler übergeben: - swf-version=17. Anweisungen finden Sie nachstehend. Wenn Sie das Adobe Flex SDK verwenden:

  • Laden Sie die neue Datei „playerglobal.swc“ für Flash Player 11.4 herunter.
  • Laden Sie das Flex 4.5.1 SDK (4.5.1.21328) aus der Flex 4.5 SDK-Tabelle herunter.
  • Installieren Sie den Build in Ihrer Entwicklungsumgebung.
  • Erstellen Sie in Flash Builder ein neues ActionScript-Projekt: „Datei“ -> „Neu“ -> „ActionScript-Projekt“.
  • Öffnen Sie das Bedienfeld „Eigenschaften“ des Projekts (klicken Sie mit der rechten Maustaste und wählen Sie „Eigenschaften“). Wählen Sie in der Liste auf der linken Seite „ActionScript-Compiler“.
  • Verwenden Sie die Option „Flex SDKs konfigurieren“ oben rechts, um auf Flex Build 21328 zu zeigen. Klicken Sie auf „OK“.
  • Konfigurieren Sie Ihr Projekt mit SWF Version 17 als Ziel.
  • Öffnen Sie das Bedienfeld „Eigenschaften“ des Projekts (klicken Sie mit der rechten Maustaste und wählen Sie „Eigenschaften“). Wählen Sie in der Liste auf der linken Seite „ActionScript-Compiler“.
  • Fügen Sie der Eingabe „Zusätzlichen Compiler-Argumente“ Folgendes hinzu: - swf-version=17. Dadurch verwendet die ausgegebene SWF-Datei SWF Version 17 als Ziel. Wenn Sie auf der Befehlszeile und nicht in Flash Builder kompilieren, müssen Sie dasselbe Compiler-Argument hinzufügen.
  • Stellen Sie sicher, dass in Ihrem Browser der neue Flash Player Build 11.4 installiert ist.

Authoring für AIR 3.4 Update auf den AIR 3.4-Namespace

Sie müssen Ihre Anwendungsdeskriptordatei auf den 3.4-Namespace aktualisieren, um auf die neuen APIs und Verhaltensweisen von AIR 3.4 Zugriff zu haben. Wenn Ihre Anwendung die neuen APIs und Verhaltensweisen von AIR 3.4 nicht benötigt, brauchen Sie den Namespace nicht zu aktualisieren. Wir empfehlen jedoch allen Benutzern, mit der Verwendung des AIR 3.4-Namespace zu beginnen, selbst wenn die neuen Funktionen von Version 3.4 noch nicht benötigt werden. Um den Namespace zu aktualisieren, ändern Sie das xmlns-Attribut im Anwendungsdeskriptor zu: <application xmlns="http://ns.adobe.com/air/application/3.4">

Melden von Fehlern

Sie haben einen Programmfehler gefunden? Senden Sie Berichte über Fehler bitte an die Flash Player- und Adobe AIR- Bug-Datenbank.

Flash Player und AIR können Ihre Grafikhardware nutzen, um H.264-Video zu dekodieren und abzuspielen. Es kann Grafikprobleme geben, die nur mit der jeweiligen Kombination aus Grafikhardware und Grafiktreiber reproduziert werden können. Wenn Sie einen grafikbezogenen Fehler melden, ist es unerlässlich, dass Sie uns Ihre Grafikhardware und den Grafiktreiber sowie das verwendete Betriebssystem und den Browser (falls Sie Flash Player verwenden) mitteilen, damit wir das Problem reproduzieren und untersuchen können. Denken Sie bitte daran, diese Informationen anzugeben wie auf der folgenden Webseite beschrieben: Anleitungen zum Melden von Problemen bei der Videowiedergabe. Hinweis: Aufgrund der vielen E-Mails, die wir erhalten, können wir nicht jede Anfrage beantworten.

Vielen Dank, dass Sie den Adobe® Flash Player® und AIR® verwenden und sich die Zeit nehmen, uns Ihre Meinung und Anregungen mitzuteilen!

Systemanforderungen

Die neuesten Systemanforderungen für Flash Player und AIR finden Sie hier


Laufzeitumgebung Versionsverlauf

 

 Veröffentlichungsdatum Laufzeitumgebungsversion Sicherheitserweiterungen
21. August 2012 Flash Player Desktop (Windows, Mac) : 11.4.402.265
AIR (Windows, Mac, Mobil): 3.4.0.2540
AIR SDK: 3.4.0.2540
 APSB12-19

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie