- Netstream při odpojování nahodile havaruje (3193417)
- Problém se zastavením streamu živého zvuku u systému AIR Android (3188340)
- drawWithQuality() neaplikuje správně filtry v zařízeních se systémem Android (3224928)
- Clipborad.generalClipboard.setData nefunguje v systému iOS (3226045)
- Přehrávač Flash Player v systému Windows nepřehrává některý obsah FLV videa (3187569)
- V aplikacích založených na přehrávači Flash Player se v prohlížeči Firefox v systému Windows přehrává pouze pravá strana zvuku (3289279)
- Po přechodu do interaktivního režimu celé obrazovky se deaktivovala funkce uzamčení myši(3174344)
- [iOS5] Textová pole s vloženými písmy jsou v mobilních zařízeních zkomolená (3161138)
- První snímek některého obsahu aktivního streamingu zamrzá (3207896)
- U aplikací systému iOS jsou nyní v deskriptoru aplikace podporovány ikony aplikací pro 50X50, 100X100 a 1024X1024 (3217144)
- Aplikace používající nativní rozšíření někdy v systému iOS havarují při vytváření určitých externích knihoven, např. Libxml2.dylib (3226974)
- Je-li v celoobrazovkové aplikaci pro iPad zabalený spouštěcí obrázek s rozlišením 768 x 1004 nebo 1024 x 748, je zaznamenávána určitá odchylka. (3230762). Nové pokyny k používání spouštěcích obrázků jsou k dispozici zde
- Videa H264 při přepínání mezi dvěma objekty NetStream připojenými k objektu StageVideo v systému iOS havarují (3206438)
- Problém s funkcí CameraRoll.browseForImage() způsobuje ztrátu průhlednosti, což vede k zobrazení bílé barvy (3291312)
- Pracovní vlákna (workers) kódu ActionScript (Flash Player)
- Podpora Sandbox Bridge (Flash Player)
- Podpora licence: Funkce Flash Player Premium pro hry (Flash Player)
- „Omezený“ profil Stage3D pro větší dosah GPU (Flash Player a AIR)
- Podpora LZMA pro třídu ByteArray (Flash Player a AIR)
- Vylepšení příkazů attachCamera/Camera třídy StageVideo (Flash Player a AIR)
- Komprimovaná textura s podporou alfa pro Stage3D (Flash Player a AIR)
- Kódování DXT (Flash Player a AIR)
- Nepřípustná rozhraní API Carbon pro AIR (AIR)
- Přímé nasazení systému AIR pomocí ADT (AIR)
- Push notifikace pro iOS (AIR)
- Okolní AudioPlaybackMode (AIR)
- Podpora výjimek v nativních rozšířeních pro iOS (AIR)
- Nová volba v ADT pro zobrazení seznamu připojených mobilních zařízení (AIR)
- Volba ADT pro vyřešení konfliktů symbolu ANE v systému iOS (AIR)
| Deliverable | Vydaná verze |
| Flash Player Desktop (Windows® /Mac) | 11.4.402.265 |
| AIR (Windows® , Mac, Mobile) | 3.4.0.2540 |
| AIR SDK | 3.4.0.2540 |
- Funkce transformVector() z Matrix3D nesprávně transformuje komponentu w (3190677)
- [iOS] V systému iOS 4.3 se komprimované Cubemaps s Alfa nesprávně vykreslují (3282166)
- Problémy s funkcí navigateToURL se znaky ASCII s vysokými čísly nefungují správně u stolních aplikací pro systém AIR (3161093)
- [iOS] U některého obsahu se instalování souboru .ipa se systémem AIR 3.4 příležitostně nezdaří a vrátí chybu instalace: PackageExtractionFailed (3220974)
- Při použití příznaku –hideAneLibSymbols během balení aplikace pro iOS by měly být v souboru ANE platform.xml použity pouze volby spojovacího programu odkazujícího na framework nebo knihovnu a volby jako -ios_version_min
- Dialog s oprávněním ke geografickému umístění se u systému iOS 6 Beta nezobrazuje (3291688)
- Aplikace AIR sbalené v systémech AIR 3.4 SDK a iOS 6 Beta SDK nepodporují na iPodu a iPhonu funkci AutoOrients pro Upside down (3286288)
- Jakákoli aplikace sbalená v systémech AIR 3.4 SDK a iOS 6 Beta SDK nepodporuje tag aspectRatio na zařízení se systémem iOS 5.1 (3286320)
| Bulletin zabezpečení | Ovlivněné deliverables |
| APSB12-19 | Flash Player Desktop Windows® a Mac |
| Flash Player AndroidTM |
ActionScript Workers
- Se zavedením vláken Workers do jazyka ActionScript a Flash Runtime mohou nyní vývojáři přehrávače Flash odložit určité úlohy jako operace s dlouhou čekací dobou a dlouhotrvající výpočty do pracovních vláken na pozadí („Background Workers“). Tyto Background Workers běží souběžně, aby uvolnily více výpočetních zdrojů a vyhnuly se záležitostem jako zamrznutí uživatelského rozhraní.
- Poznámka: Chcete-li naplno využít vlákna Workers kódu ActionScript a být schopni vyhledávat a odstraňovat závady u vláken workers, je vyžadována následující verze aplikace Flash Builder. Tato následující verze aplikace Flash Builder bude k dispozici prostřednictvím vydání public beta přibližně v srpnu.
- Poznámka: Podpora sdílené paměti (ByteArray.shareable) byla přesunuta do nadcházejícího vydání přehrávače Flash Player.
Podpora Sandbox Bridge
- Přemostění sandboxu umožňuje vystavení určitých objektů nebo funkcí ActionScript mezi komunikaci SWF-SWF napříč doménami. Tato funkce je již dostupná v systému AIR a v tomto vydání je přenášena do přehrávače Flash Player.
Podpora licencí: Funkce Flash Player Premium pro hry (Flash Player)
- Zavedení prémiových funkcí pro hry nyní umožňuje, aby se na Flash Player zacílily i jiné toky prací než ActionScript. Toto vydání podporuje řízení licence prémiových funkcí u rozhraní API XC (společné použití rozhraní API doménové paměti a API hardwarové akcelerace Stage 3D) v přehrávači Flash Player. Tato rozhraní API využívají některé nástroje třetích stran, např. Unity a kompilátor C/C++ Project „Alchemy“ od Adobe. Více informací najdete na webu na adrese www.adobe.com/go/fpl_cz.
„Omezený“ profil Stage3D pro větší dosah GPU
- Flash Player řídí použití hardwarové akcelerace na základě data ovladače vaší grafické karty. U dřívějších vydání jsme usměrnili podporu pro starší ovladače než z 1. ledna 2008. V tomto vydání změníme usměrnění na použití na starší ovladače než z 1. ledna 2006. Obsah používající příkaz wmode=direct (nebo renderMode=direct pro systém AIR) by měl být u novějších ovladačů grafické karty než z 1. ledna 2006 pokud možno hardwarově akcelerován. To platí pro rozhraní API Stage3D a [StageVideo|StageVideo]. Kromě toho jsme přidali nový profil pro Stage3D nazvaný „omezený“ profil, který umožňuje, aby váš obsah běžel hardwarově akcelerován na čipových sadách Intel® GMA, které byly dříve na černé listině. Další podrobnosti k tomuto novému profilu a jeho využití jsou uvedeny níže.
Podpora LZMA pro třídu ByteArray
- Kromě komprese zlib třídy ByteArray zavádíme další typ komprese založený na LZMA pro kompresi dat uvnitř třídy ByteArray prostřednictvím příkazů ByteArray.compress() a ByteArray.uncompress().
Komprimovaná textura s podporou alfa pro Stage3D (Flash Player a AIR)
- U komprimovaných textur jsou nyní podporovány průhledné obrazy (formát souboru ATF).
StageVideo vylepšení funkce attachCamera/Camera
- Tato funkce odhaluje novou metodu u objektů StageVideo, která umožňuje, aby kód ActionScript směroval video stream z kamery do objektu StageVideo a tím přiměl GPU k vykreslování namísto rastrování. To umožňuje, aby byl přehrávač mnohem rychlejší při zpracovávání video streamu z kamery, když je k dispozici akcelerace GPU.
Kódování DXT
- Tato funkce umožňuje kódování nekomprimovaných textur do formátu DXT při běhu, aby mohla být textura nahrána do GPU jako komprimovaná textura DXT.
K dispozici na stolních počítačích pro Flash Player 11.4 i AIR 3.4
Nepřístupná rozhraní API Carbon pro AIR
- Od verze Mac OS X 10.8 již Apple nebude rozhraní API Carbon podporovat. Proto jsou tato rozhraní API a jiný nepřípustný kód ze systému AIR v tomto vydání odstraněny, aby byl AIR ve shodě se systémem Mac OSX 10.8.
- Tato nová funkce umožňuje vývojářům nasadit aplikaci AIR na zařízeních iOS, aniž by museli použít iTunes nebo XCode. Chcete-li použít tuto funkci, musí být na počítači uživatele instalována aplikace iTunes 10.5.0 nebo vyšší.
Push notifikace iOS
- Tato funkce bude ke generování notifikací používat APNS (Apple Push Notification Service) a poskytovatele (server třetí strany, který bude komunikovat s APN). Byl zaveden nový balíček flash.notifications. Doručování push notifikací je zcela závislé na službě Apple Push Notification Service a APNS nezaručuje doručování push notifikací. Apple také doporučuje přihlášení k odběru push notifikací při každém spuštění aplikace. Pokaždé, když se klientská aplikace přihlásí k odběru push notifikací, poskytne APNS klientské aplikaci ID známky a toto ID známky by mělo být odesláno na server třetí strany nebo poskytovateli, který bude vzdálené notifikace posílat.
Ambient AudioPlaybackMode
- V systému AIR 3.4 budou mít uživatelé možnost volby jednoho dalšího režimu AudioPlaybackMode, tj. jiného režimu AMBIENT než VOICE a MEDIA. Tento nový režim AudioPlaybackMode umožní uživatelům přinutit jejich aplikaci, aby akceptovala „hardwarový vypínač zvuku“ přítomný na iphonech/ipadech. Největší využití tohoto režimu přehrávání Ambient je v herních aplikacích, kde bude mít uživatel aplikace možnost volby ztišení zvuku hry a současně bude moct poslouchat hudbu z libovolné jiné aplikace na pozadí.V režimu Ambient akceptuje audio hardwarový vypínač zvuku pouze na zařízeních iOS. Na zařízeních se systémem AndroidTM bude režim Ambient stejný jako režim Media.
Podpora výjimek u nativních rozšíření pro iOS
- Nativní rozšíření pro iOS může nyní využívat výjimky C++ i Objective-C. Je na rozšíření, aby zachytilo všechny výjimky vyskytující se v jeho kódu. Výjimky vyskytující se v rozšířeních nebudou zachyceny za běhu.
Volba ADT pro zobrazení seznamu připojených mobilních zařízení
- Do ADT byla přidána nová volba, '-devices', pro zobrazení seznamu připojených zařízení se systémem iOS/AndroidTM. Uživatelé mohou využít tuto volbu namísto použití volby adb pro vypsání seznamu zařízení se systémem AndroidTM a volby idb pro vypsání zařízení se systémem iOS. Chcete-li použít tuto funkci, musí být na počítači uživatele instalována aplikace iTunes 10.5.0 nebo vyšší.
Volba ADT pro vyřešení konfliktů symbolu ANE v systému iOS
- Protože vývojáři aplikací mohou používat vícenásobná nativní rozšíření získaná z různých zdrojů, může běžný název symbolu ve 2 ANE způsobit chybu při balení oznamující duplicitní symbol v souborech objektu nebo selhání při běhu. Pro předejítí tomuto problému byla zavedena nová volba, -hideAneLibSymbols, kterou můžete zadat v době balení aplikace. Může nabývat hodnot ano nebo ne, kde ano skryje symboly knihovny každého ANE z jiných ANE.
Začínáme s vlákny Workers
Chcete-li začít používat vlákna workers, podívejte se na příklady v souboru flashplayer11-4_p1_ex_concurrency.zip.
Poznámka
Zde je tabulka využití paměti u systémů MacOS a Windows®:
# pracovních vláken (workers) |
Mac BookPro |
PC |
Notebook Lenovo T61 |
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 |
Když se provádí kód v kontextu jiného než původního pracovního vlákna (tj. na pozadí), některé chování rozhraní API flashruntime se bude lišit od kódu ActionScript, který se provádí v hlavním vlákně. Následující rozhraní API se budou chovat odlišně při použití zevnitř pracovního vlákna na pozadí.
Nefunkční rozhraní API
Následující rozhraní API nebudou dostupná zevnitř pracovního vlákna na pozadí. Jakýkoli pokus o konstrukci kterékoli z těchto instancí vrátí chybu IllegalOperationError se zprávou „Tato funkce není v tomto kontextu dostupná“. ID chyby bude u všech instancí stejné, což umožní vývojářům vypnout tuto hodnotu.
- flash.desktop.Clipboard // volání konstruktora vrátí; volání příkazu generalClipboard vrátí hodnotu null
- flash.desktop.NativeDragManager // isSupported vrátí hodnotu false
- flash.desktop.Updater // isSupported vrátí hodnotu false
- flash.display.NativeMenu // isSupported vrátí hodnotu false
- flash.display.NativeWindow // isSupported vrátí hodnotu false
- flash.display.ToastWindow // nemůže získat přístup k instanci, protože nebude definováno stage.window
- flash.display.Window // nemůže získat přístup k instanci, protože nebude definováno stage.window
- flash.external.ExtensionContext // createExtensionContext() vždy vrátí hodnotu null nebo vrátí chybu
- flash.external.ExternalInterface // dostupné vrátí hodnotu false
- flash.html.* // HTMLLoader.isSupported vrátí hodnotu false
- flash.media.CameraRoll // supportsAddBitmapData a supportsBrowseForImage vrátí hodnotu false
- flash.media.CameraUI // isSupported vrátí hodnotu false
- flash.media.StageWebView // isSupported vrátí hodnotu false
- flash.net.drm.* // DRMManager.isSupported vrátí hodnotu false
- flash.printing.* // PrintJob.isSupported vrátí hodnotu false
- flash.security.XMLSignatureValidator // isSupported vrátí hodnotu false
- flash.system.IME // isSupported vrátí hodnotu false
- flash.system.SystemUpdater // volání konstruktora vrátí
- flash.text.StageText // volání konstruktoru vrátí
- flash.ui.ContextMenu // isSupported vrátí hodnotu false
- flash.ui.GameInput // isSupported vrátí hodnotu false
- flash.ui.Mouse // všechny metody jsou nulové operace; nastavení vlastnosti „kurzor“ je nulová operace
Změny chování u rozhraní API
Následující rozhraní API mají pozměněné chování, když jsou spuštěná zevnitř pracovního vlákna na pozadí. Některá volání metod jsou nulové operace, zatímco jiná vrátí chybu IllegalOperationError nebo obdobnou, jak je konzistentní s rozhraním API s dokumentací. Vrácené hodnoty by měly být v co největší míře konzistentní s dokumentací. Například pokud metoda vrátí Pole s prvky za normálních podmínek, když je prováděna zevnitř pracovního vlákna na pozadí, vrátí prázdné Pole.
- flash.accessibility.Accessibilty
- active // vždy vrátí hodnotu false
- updateProperties(); // nulová operace
- Vlastnosti flash.desktop.NativeApplication**
·
- flash.display.Stage
- allowsFullScreen // vždy vrátí hodnotu false
- stage3Ds // vždy vrátí prázdný Vektor
- stageVideos // vždy vrátí prázdný Vektor
- supportsOrientationChange // vždy vrátí hodnotu false
- wmodeGPU // vždy vrátí hodnotu false
- flash.filesystem.File
- browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // nulová operace
- flash.net.FileReference** browse(), download(), save() // nulová operace; vždy vrátí hodnotu false
- flash.net.FileReferenceList** browse() // nulová operace; vždy vrátí hodnotu false
- flash.system.System
- ime // vždy vrátí hodnotu null
- // vynutí zastavení a vypnutí tohoto pracovního vlákna na pozadí
- setClipboard() // nulová operace
-
- metody
- activate(), clear(), copy(), cut(), paste(), selectAll() // nulová operace
- exit() // vynutí zastavení a vypnutí tohoto pracovního vlákna na pozadí
- události
- je podporována pouze ukončovací událost – tato událost bude odeslána při vypínání pracovního vlákna (nastane buď při volání metody životního cyklu, nebo vypínání „hlavního“ pracovního vlákna, tj. při ukončování běhu; nelze zrušit z pracovního vlákna na pozadí)
-
- supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // všechny vrátí hodnotu false
- activeWindow // vrátí hodnotu null
- autoExit // setter je nulová operace
- idleThreshold // setter je nulová operace
- openedWindows // vrátí prázdné Pole []
- systemIdleMode // setter je nulová operace
- metody
Zvětšený dosah GPU – omezený profil Stage3D
Byl zaveden nový parametr pro Context3D nazvaný „profil“. Tento parametr bude poskytnut funkci Stage3D.requestContext3D() a můžete mu dát jednu ze dvou hodnot Context3DProfile.BASELINE ("baseline"), která vrátí typický Context3D, který se vyskytoval i v dřívějších vydáních, nebo Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained"), která vrátí nový druh prvku Context3D schopný běhu s hardwarovou akcelerací na dříve nepodporovaných GPU. Omezený profil umožňuje tvůrcům obsahu vytvářet obsah Stage3D zaměřující se na starší systémy používající grafické karty jako Intel® GMA 900/950 v systému Windows® . Zaměření na hardware nižší kategorie s Omezeným profilem je vykoupeno tím, že schopnosti Stage3D budou omezeny, aby bylo zaručeno, že obsah na tomto hardwaru poběží správně. Karty jako GMA 900/950 podporují pouze objekty shader pixel/vertex verze 2.0, což vynucuje následující omezení u Stage3D při použití Omezeného profilu:
- Omezeno na 64 ALU a 32 pokynů pro texturu na jeden shader.
- Pouze 4 odkazování na čtení textury na jeden shader.
- Omezeno na menší množství konstant/změn/dočasných souborů na jeden shader.
- Žádná podpora pro registr predikátů. To má vliv na pokyny sln/sge/seq/sne a musí být nahrazeno složenými pokyny mov/cmp, které jsou dostupné u ps_2_0 (to bude provedeno skrytě za cenu použití více slotů pokynů v porovnání s ps_2_x).
- Zadní vyrovnávací paměť Context3D musí být neustále v mezích vymezené plochy.
- V instanci Flash Player je povolena pouze jedna instance Context3D běžící v Omezeném profilu.
- Jako u mobilních zařízení, prvky seznamu zobrazení Flash nebudou aktualizovány, zatímco je viditelný omezený obsah Stage3D, pokud není vyvolán pokyn Context3D.present().
„Profil“ je druhý volitelný parametr metody requestContext3D. Vývojáři mohou vyžádat profil "baselineConstained", aby získali Context3D v omezeném režimu, jak ukazuje následující api: funkce requestContext3D ( context3DRenderMode : String = "auto", profil : String = "baseline" ) : void;
Příklad:
stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED);
Přímé nasazení systému AIR pomocí ADT
Instalace:
Chcete-li na zařízení instalovat IPA, použijte následující příkaz:
adt -installApp -platform ios -device <deviceID> -package <ipa-file>
Odinstalace:
Chcete-li odinstalovat IPA ze zařízení, použijte následující příkaz:
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id>
<deviceID> vašeho připojeného zařízení by byla hodnota ‘Handle’ zobrazená pomocí následujícího příkazu:
@SDKLocation/bin/adt –devices –platform ios
<app-id> je zadáno v souboru deskriptoru aplikace (app.xml) v tagu <id>. Vytvoříte-li projekt pomocí aplikace Flash Builder, bude při výchozím nastavení stejný jako název vaší aplikace.
Je-li ke stolnímu počítači připojeno pouze jedno zařízení, vynechte argument '-device <deviceID> ' a aplikace bude nainstalována/odinstalována na připojeném zařízení.
adt -installApp -platform ios -package <ipa-file>
Push notifikace iOS
1) Identifikátor aplikace (tag id) v souboru app-xml musí být stejný jako identifikátor aplikace mobilního telefonu, která zajišťuje certifikát povolený nabízenými oznámeními.
2) V deskriptoru vaší aplikace uveďte oprávnění prostředí aplikace:
<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>
Pro zařazení aplikace do Obchodu s aplikacemi s povolenými Push notifikacemi je třeba nastavit prostředí aplikace na produkci. Vývojář musí použít zajišťovací profil s povolenými Push notifikacemi. Oprávnění podepsané aplikace ověříte pomocí následujícího příkazu:
codesign -d --entitlements - <YourAppName>.app
3) Pomocí nově přidané třídy flash.notification v aplikaci povolíte podporu push notifikací. Například,
// Na platformách, na kterých není podporován žádný styl notifikací, bude vrácen prázdný Vektor. if (RemoteNotifier.supportedNotificationStyles != " " ) { var preferredNotificationStyles:Vector.<String> = nový Vektor.<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); // volání metody přihlášení odběru bez jakýchkoli voleb přihlášení odběru automaticky přihlásí odběr všech stylů notifikací podporovaných na dané platformě rn.subscribe(subscribeOptions); } function tokenEventHandler(event:RemoteNotificationEvent):void { // Vývojáři systému AIR mohou poslat ID známky získané v event.data na svůj server přes požadavek URL 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 { //Kód pro zpracování dat přijatých z události RemoteNotificationEvent notifikace typu (var x:String in e.data) { trace("\n"+ x + ": " + e.data[x]); } } public function statusHandler(e:StatusEvent):void { //kód pro zpracování události, když se nezdařilo přihlášení odběru } private function onError(e:IOErrorEvent):void { //Kód pro zpracování chyby, která se vyskytla při provádění požadavku url zaváděcího programu url } private function onComplete(e:Event):void { //Kód ke zjištění, co dělat po dokončení požadavku url provedeného zaváděcím programem url } } private function onStatus(e:HTTPStatusEvent):void { //Kód ke zjištění stavu http požadavku url provedeného zaváděcím programem url }
Klientská aplikace může ve svém balíku uložit řetězce výstražné zprávy pro každou lokalizaci, kterou podporuje. Poskytovatel zadá vlastnosti loc-key a loc-args do svého slovníku aplikací užitečného zatížení notifikací. Když zařízení obdrží notifikaci, použije vlastnosti slovníku aplikací k nalezení a naformátování řetězce lokalizovaného pro aktuální jazyk, který poté zobrazí uživateli.
Lokalizované řetězce se musí nacházet v souboru s názvem Localizable.strings v příslušné složce <language>.lproj. Každý zápis v tomto souboru má klíč a hodnotu lokalizovaného řetězce, řetězec může mít specifikátory formátu pro nahrazení hodnot proměnných. Když aplikace požádá o konkrétní řetězec, obdrží zdroj, který je lokalizovaný pro jazyk aktuálně zvolený uživatelem.
Chcete-li přijímat lokalizované vzdálené notifikace, aplikace systému AIR musí mít páry hodnot lokalizovaného klíče v souboru Localizable.strings ve složce <language>/lproj uvnitř ipa. Chcete-li přidat soubor Localizable.strings do ipa, musíte přidat příslušnou složku <language>.lproj do příkazu adt následujícím způsobem:
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
Upozorňujeme, že složka lproj musí být přítomná v aktuálním adresáři, aby příkaz adt sloučil soubory v příslušné složce lproj. Je-li složka lproj uvedena jako a/b/c/en.lproj, přidá ji příkaz adt jako a/b/c/en.lproj a páry hodnot lokalizovaného klíče nebudou pro aplikaci přístupné.
Volba ADT pro zobrazení seznamu připojených mobilních zařízení
Následující příkaz slouží k získání informací o připojených zařízeních se systémem iOS/AndroidTM :
adt -devices -platform (android | ios)
Tento příkaz zobrazí výstup následujícího typu:
Seznam připojených zařízení:
Handle DeviceClass DeviceUUID DeviceName
7 iPhone 783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone
Podpora licence: Funkce Flash Player Premium pro hry (pouze Flash Player)
Společné použití doménové paměti (používané některými nástroji třetích stran a kompilátorem C/C++ Project „Alchemy“) s hardwarovou akcelerací Stage3D bude vyžadovat licenci. Při použití obou funkcí zároveň se v debuggeru obsahu Flash Player (ladicím přehrávači) zobrazí informační vodoznak. Tento požadavek na licenci se nevztahuje na obsah, který používá hardwarovou akceleraci Stage3D bez doménové paměti (nebo doménovou paměť bez Stage3D) a nevztahuje se na žádný obsah nasazený pomocí systému Adobe AIR.
Zpracování ztráty zařízení
Při automatickém přepnutí Stage3D na softwarové vykreslování dále poběží nelicencovaný obsah. Chcete-li zajistit, aby váš software správně zpracovával ztrátu zdroje grafické karty, poslouchejte událost Event.CONTEXT3D_CREATE na objektu Stage3D za účelem opakované inicializace grafiky vašeho obsahu. Událost ztráty zařízení můžete simulovat vyvoláním pokynu context3D.dispose(). (Veškerý obsah Stage3D by měl zpracovat ztrátu zařízení, ke které může dojít, i když je počítač zamčený nebo když se aktivoval šetřič obrazovky.)
Volba ADT pro vyřešení konfliktů symbolu ANE v systému iOS
Následující příkaz slouží k balení aplikací pomocí této volby:
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
Hodnota „ano“ zabrání konfliktům symbolu a hodnota „ne“ znamená stejné chování jako dříve. Upozorňujeme, že tato funkce ještě není v aplikaci Flash Builder/Flash Professional k dispozici.
var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false); texture1.uploadFromBitmapData(myPNGBitmap.bitmapData); // nebo můžete nahrát z třídy byteArray i var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false); texture2.uploadFromByteArray(myPNGByteArray);
[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);
Tvorba pro Flash Player 11.4
Chcete-li používat nový Flash Player, budete se muset zacílit na SWF verze 17 SWF uvedením dodatečného argumentu kompilátoru v kompilátoru Flex: -swf-version=17. Návod je uveden níže. Používáte-li aplikaci Adobe Flex SDK:
- Stáhněte si nový soubor playerglobal.swc pro Flash Player 11.4
- Stáhněte si aplikaci Flex 4.5.1 SDK (4.5.1.21328) z tabulky Flex 4.5 SDK.
- Nainstalujte sestavu do vašeho vývojového prostředí.
- V aplikaci Flash Builder vytvořte nový projekt ActionScript: Soubor -> Nový -> Projekt ActionScript.
- Otevřete v projektu panel Vlastnosti (klepněte pravým tlačítkem a zvolte „Vlastnosti“). Ze seznamu nalevo vyberte Kompilátor ActionScript.
- Pomocí volby 'Configure Flex SDK's' (Konfigurovat sadu Flex SDK) v pravém horním rohu nasměrujte projekt na sestavu Flex 21328. Klepněte na tlačítko OK.
- Proveďte konfiguraci vašeho projektu pro zacílení na SWF verze 17.
- Otevřete v projektu panel Vlastnosti (klepněte pravým tlačítkem a zvolte „Vlastnosti“). Ze seznamu nalevo vyberte položku Kompilátor ActionScript.
- Ke vstupu 'Additional compiler arguments' přidejte: -swf-version=17. Tím zajistíte, že výsledný soubor SWF bude zacílen na SWF verze 17. Pokud provádíte kompilaci na příkazovém řádku a ne v aplikaci Flash Builder, musíte přidat stejný argument kompilátoru.
- Přesvědčte se, že máte v prohlížeči nainstalovanou novou sestavu aplikace Flash Player 11.4.
Tvorba pro AIR 3.4 Aktualizace na jmenný prostor AIR 3.4
Musíte aktualizovat soubor deskriptoru aplikace na jmenný prostor 3.4, abyste měli přístup k novým rozhraním API AIR 3.4 a chování. Nevyžaduje-li vaše aplikace nová rozhraní API AIR 3.4 a chování, nemusíte jmenný prostor aktualizovat. Doporučujeme však všem uživatelům, aby začali používat jmenný prostor AIR 3.4, i když nevyužívají výhod schopností nové verze 3.4. Chcete-li aktualizovat jmenný prostor, změňte atribut xmlns v deskriptoru vaší aplikace na: <application xmlns="http://ns.adobe.com/air/application/3.4">
Zjistili jste chybu? Odešlete prosím chybu do databáze chyb.
Flash Player a AIR mohou využít hardware vaší grafické karty k dekódování a přehrávání videa H.264. Mohou se vyskytovat problémy s videem, které lze reprodukovat pouze s vaším konkrétním grafickým hardwarem a ovladačem. Při oznamování problému týkajícího se videa je důležité, abyste uvedli svůj grafický hardware a ovladač a také operační systém a prohlížeč (pokud používáte aplikaci Flash Player), abychom mohli problém reprodukovat a prozkoumat. Tyto informace je nutné uvést tak, jak je popsáno v dokumentu Pokyny k nahlašování problémů s přehráváním videa. Poznámka: V důsledku velkého objemu e-mailů, které dostáváme, nejsme schopni reagovat na každý požadavek.
Děkujeme vám za používání aplikací Adobe® Flash Player® a AIR® a za to, že jste věnovali svůj čas odeslání názorů.
Nejnovější požadavky aplikace Flash Player a systému AIR jsou uvedeny v dokumentu zde.
