Problemi risolti

Uscita: 10/8/12

  • Arresto anomalo durante la navigazione verso e da un contenuto Flash in Internet Explorer (3328165)
  • Impossibile creare il pacchetto di un'applicazione in iOS utilizzando un ANE che non implementa la funzione finalizer. (3325320)
  • La compilazione del pacchetto fallisce con un'eccezione di puntatore null, quando si crea un pacchetto IPA utilizzando solo l'implementazione predefinita nell'ANE in iOS. (3325321)
  • I dati del database vengono cancellati a ogni avvio di iOS Simulator. (3329309)
  • Debug Wi-Fi in iOS: il debug in iOS non funziona quando un'interfaccia di rete viene scelta come "Predefinita" per il lettore di destinazione di AIR 3.4 (3325323)

Uscita: 21/8/12

  • Arresto anomalo saltuario di Netstream alla chiusura della connessione (3193417)
  • Problema di interruzione dello streaming audio dal vivo su AIR Android (3188340)
  • drawWithQuality() non esegue il rendering corretto dei filtri su dispositivi Android (3224928)
  • Clipboard.generalClipboard.setData non funziona in iOS (3226045)
  • Parte del contenuto video FLV non viene riprodotto in Flash Player su Windows (3187569)
  • Solo la parte destra dell'audio viene riprodotta nelle app basate su Flash Player in Firefox su Windows (3289279)
  • Funzione di blocco del mouse disabilitata dopo l'attivazione della modalità interattiva a schermo interno (3174344)
  • [iOS5] Oggetti TextField con font incorporati strani su dispositivi mobili (3161138)
  • Il primo fotogramma di una parte dello streaming dal vivo si blocca (3207896)
  • Le icone dell'applicazione per 50X50, 100X100, 1024X1024 sono ora supportate per applicazioni iOS nel descrittore dell'applicazione (3217144) 
  • Le applicazioni che utilizzano estensioni native si arrestano a volte in modo anomalo su iOS quando si utilizzano alcune librerie esterne. Ad esempio, Libxml2.dylib (3226974) 
  • Deviazione osservata quando un'immagine di avvio con risoluzione 768 x 1004 o 1024 x 748 è inserita in un'applicazione iPad in modalità a schermo intero. (3230762). Le nuove linee guida sull'utilizzo delle immagini di avvio sono disponibili qui
  • Arresto anomalo dei video H264 su iOS quando si passa da un NetStream a un altro collegati a un oggetto StageVideo(3206438)
  • Problema con CameraRoll.browseForImage() che causa perdita di trasparenza con conseguente colore bianco (3291312)

Nuove funzioni

Uscita: 10/8/12

A partire dal 19/9/12 iOS6 SDK non sarà più in versione beta.

Nessuna nuova funzione in questa versione

Uscita: 21/8/12

  • Worker ActionScript (Flash Player)
  • Supporto bridge sandbox (Flash Player)
  • Supporto di gestione licenze: funzioni Flash Player Premium per applicazioni di gaming (Flash Player)
  • Profilo "vincolato" Stage3D per possibilità di accesso a GPU migliorata (Flash Player e AIR)
  • Supporto LZMA per ByteArray (Flash Player e AIR)
  • Miglioramenti attachCamera/Camera StageVideo (Flash Player e AIR)
  • Texture compressa con supporto alfa per Stage3D (Flash Player e AIR)
  • Codifica DXT (Flash Player e AIR)
  • API Carbon obsolete per AIR (AIR)
  • Distribuzione AIR diretta utilizzando ADT (AIR)
  • Notifiche push per iOS (AIR)
  • AudioPlaybackMode Ambient (AIR)
  • Supporto delle eccezioni nelle estensioni native per iOS (AIR)
  • Nuova opzione in ADT per elencare i dispositivi mobili collegati (AIR)
  • Opzione ADT per risolvere conflitti tra simboli ANE su iOS (AIR)

Per un elenco completo delle funzioni di Flash Player e AIR, incluse le funzioni introdotte nelle versioni precedenti, consultate questo documento

Versioni rilasciate al pubblico

Prodotto Versione rilasciata al pubblico
 Flash Player Desktop (Windows® /Mac)  11.4.402.287
 AIR (Windows®, Mac, Mobile)  3.4.0.2710
 AIR SDK  3.4.0.2710

Problemi noti

Uscita: 21/8/12
  • transformVector() di Matrix3D non trasforma correttamente il componente w (3190677)
  • [iOS] In iOS 4.3, il rendering di Cubemap compressi con Alfa non viene eseguito correttamente (3282166)
  • Problemi navigateToURL con caratteri high-ASCII. Non funziona correttamente per applicazioni desktop di AIR (3161093)
  • [iOS] In una parte del contenuto, è possibile che l'installazione di un file .ipa con AIR 3.4 non vada a buon fine con errore di installazione: PackageExtractionFailed (3220974)
  • Quando si utilizza il flag –hideAneLibSymbols durante la creazione del pacchetto di un'applicazione per iOS, utilizzare solo le opzioni di collegamento framework e libreria e opzioni quali -ios_version_min nel file platform.xml di ANE
Adobe continua a funzionare con iOS 6 Beta SDK e a risolvere problemi. I problemi noti correnti sono:
  • La finestra di dialogo di autorizzazione della localizzazione geografica non viene visualizzata su iOS 6 Beta (3291688)
  • Le applicazioni AIR incluse in AIR 3.4 SDK e iOS 6 Beta SDK non supportano AutoOrients for Upside down su iPod e iPhone (3286288)
  • Qualsiasi applicazione inclusa in AIR 3.4 SDK e iOS 6 Beta SDK non supporta il tag aspectRatio su dispositivi iOS 5.1 (3286320)

Miglioramenti della sicurezza

Bollettino sulla sicurezza Prodotti interessati
 APSB12-22  Flash Player Desktop Windows® e Mac

 Flash Player AndroidTM

Nuove funzioni: panoramica


Worker ActionScript

  • Con l'introduzione di Worker in ActionScript e il runtime Flash, gli sviluppatori Flash possono ora trasferire alcune operazioni, ad esempio quelle ad elevata latenza e i calcoli con tempi di esecuzione lunghi in "worker di background". Questi worker di background vengono eseguiti contemporaneamente per sfruttare più risorse macchina ed evitare problemi quali i blocchi dell'interfaccia utente. 
  • Nota: per sfruttare completamente i Worker ActionScript ed eseguire il debug dei worker, è richiesta la versione successiva di Flash Builder. Questa versione successiva di Flash Builder verrà resa disponibile mediante un beta pubblico nel periodo di agosto.
  • Nota: il supporto memoria condivisa (ByteArray.shareable) è stato spostato in una prossima versione di Flash Player.

Supporto bridge sandbox

  • Il bridge sandbox consente di esporre oggetti o funzioni ActionScript specifici nelle comunicazioni in domini diversi tra file SWF. Questa funzione è già disponibile in AIR e viene trasferita in Flash Player in questa versione.

Supporto di gestione licenze: funzioni Flash Player Premium per applicazioni di gaming (Flash Player)

  • Con l'introduzione di funzioni Premium per applicazioni di gaming, i flussi di lavoro non ActionScript possono fare riferimento a Flash Player. Questa versione supporta il controllo delle licenze delle funzioni Premium delle API XC (l'uso combinato dell'API memoria di dominio e dell'API di accelerazione hardware Stage 3D) in Flash Player. Queste API vengono utilizzate da alcuni strumenti di terze parti come Unity e il compilatore C/C++ "Alchemy" Project di Adobe. Per ulteriori informazioni, visitate www.adobe.com/go/fpl_it.

Profilo "vincolato" Stage3D per possibilità di accesso a GPU migliorata (Flash Player e AIR)

  • Flash Player limita l'uso dell'accelerazione hardware in base alla data del driver della scheda video. Nelle versioni precedenti, è stato limitato il supporto a driver precedenti al 1° gennaio 2008. In questa versione, la limitazione verrà modificata per applicarla ai driver precedenti al 1° gennaio 2006. Se possibile, il contenuto utilizzando wmode=direct (o renderMode=direct per AIR) deve essere accelerato via hardware su driver di schede grafiche più recenti di 1/1/2006. Questo è valido per API Stage3D e [StageVideo|StageVideo]. Inoltre, è stato aggiunto un nuovo profilo per Stage3D denominato profilo "vincolato", che consente di eseguire il contenuto con accelerazione hardware su chipset precedentemente inclusi nella blacklist GMA Intel®. Di seguito sono riportati ulteriori dettagli su questo nuovo profilo e su come sfruttarlo.

Supporto LZMA per ByteArray

  • Oltre alla compressione zlib di ByteArray, viene introdotto un altro tipo di compressione basato su LZMA per comprimere dati all'interno di un ByteArray tramite ByteArray.compress() e ByteArray.uncompress().

Texture compressa con supporto alfa per Stage3D (Flash Player e AIR)

  • Le immagini trasparenti sono ora supportate per texture compresse (formato file ATF).

Miglioramenti attachCamera/Camera StageVideo

  • Questa funzione espone un nuovo metodo sugli oggetti StageVideo che consente al codice ActionScript di indirizzare il flusso video dalla videocamera a un oggetto StageVideo, sfruttando pertanto il GPU per il rendering anziché la rasterizzazione. Questo consente una maggiore velocità del lettore durante l'elaborazione di un flusso video dalla videocamera quando è disponibile l'accelerazione GPU.

Codifica DXT

  • Questa funzione consente di codificare texture non compresse nel formato DXT in fase di runtime, in modo da poter caricare la texture nella GPU come texture DXT compressa.
    Disponibile su desktop per Flash Player 11.4 e AIR 3.4

API Carbon obsolete per AIR

  • A partire da Mac OS X 10.8, le API Carbon non saranno più supportate da Apple. Pertanto queste API e altro codice obsoleto viene rimosso da AIR in questa versione per l'uniformità con Mac OSX 10.8.
Distribuzione AIR diretta utilizzando ADT
  • Questa nuova funzione consente allo sviluppatore di distribuire un'applicazione AIR su dispositivi iOS senza dover utilizzare iTunes o XCode. Per utilizzare questa funzione, iTunes 10.5.0 o versione successiva deve essere installato nella macchina dell'utente.

Notifiche push iOS

  • Questa funzione utilizza APNS (Apple Push Notification Service) e un provider (server di terze parti che comunica con APN) per generare notifiche. È stato introdotto un nuovo pacchetto flash.notifications. L'invio delle notifiche push dipende completamente dal servizio di notifica push di Apple e APNS non garantisce l'invio delle notifiche push. Apple consiglia di eseguire la sottoscrizione alle notifiche push ogni volta che si avvia un'applicazione. Ogni volta che l'app client effettua la sottoscrizione alle notifiche push, APNS fornisce all'app client un token-id che deve essere inviato al server o al fornitore di terze parti che inviano le notifiche remote.

AudioPlaybackMode Ambient

  • Con AIR 3.4, gli utenti dispongono di un'ulteriore modalità AudioPlaybackMode ovvero AMBIENT diversa da VOICE e di MEDIA. Questa nuova modalità AudioPlaybackMode consente agli utenti di forzare l'applicazione in modo da rispettare "hardware mute switch" presente su iphone/ipad. Lo scenario principale di utilizzo della playbackmode Ambient è nelle app di gioco in cui l'utente dell'app ha la possibilità di azzerare l'audio del gioco e può anche ascoltare la musica di un'altra app come sottofondo. In modalità Ambient, l'audio è conforme all'hardware mute switch solo su dispositivi iOS. Su dispositivi AndroidTM, la modalità Ambient è equivalente alla modalità Media.

Supporto eccezioni nelle estensioni native per iOS

  • Un'estensione nativa per iOS può ora utilizzare eccezioni C++ e Objective-C. È compito dell'estensione catturare tutte le eccezioni generate nel suo codice. Il runtime non cattura le eccezioni generate dalle estensioni.

Opzione ADT per elencare i dispositivi mobili collegati

  • Una nuova opzione '-devices' è stata aggiunta in ADT per elencare i dispositivi iOS/AndroidTM collegati. Gli utenti possono sfruttare questa opzione anziché utilizzare adb per creare l'elenco dei dispositivi AndroidTM e idb per creare l'elenco dei dispositivi iOS. Per utilizzare questa funzione, iTunes 10.5.0 o versione successiva deve essere installato nella macchina dell'utente.

Opzione ADT per risolvere conflitti tra simboli ANE su iOS

  • Poiché gli sviluppatori di applicazioni possono utilizzare più estensioni native ottenute da diverse risorse, un nome simbolo comune nei due ANE può restituire un errore di creazione pacchetto in cui viene specificata la presenza di un simbolo duplicato nei file dell'oggetto o un arresto anomalo in fase di runtime. Per aggirare questo problema, è stata introdotta una nuova opzione ADT, -hideAneLibSymbols, che può essere specificata in qualsiasi momento durante la creazione del pacchetto dell'applicazione. Può accettare i valori – yes o no, in cui yes nasconde i simboli della libreria di ogni ANE da altri ANE.

Nuove funzioni: linee guida di utilizzo

Guida introduttiva di Workers

Per imparare a utilizzare la funzione Workers, fare riferimento agli esempi nel file flashplayer11-4_p1_ex_concurrency.zip.

Nota

Di seguito è riportata l'occupazione di memoria misurata per worker su MacOS e Windows®:

n. di worker

Mac BookPro
Mac OS X 10.7.3 
2.4 GHz Intel® CoreTM i7 
8 GB di RAM 
Mac OSX 10.7 
memoria (MB)

Macchina PC 
Windows® 7 a 32 bit 
Intel® Xeon Quad core 3.2 GHz 
2048 MB di RAM 
Windows® 7 
memoria (MB)

Computer laptop Lenovo T61 
Windows® XP 
Intel® CoreTM Duo Core 2.2 GHz 
2014 MB di RAM 
Windows® XP 
memoria (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

Quando il codice è in esecuzione nel contesto di un worker non primordiale (ovvero di background), il comportamento di alcune API flashruntime sarà diverso da quello del codice ActionScript che viene eseguito nel thread principale. Le API seguenti si comportano in modo diverso quando vengono utilizzate all'interno di un worker di background.

API non funzionali

Le API seguenti non saranno disponibili da un worker di background. Qualsiasi tentativo di creare un'istanza genera un errore IllegalOperationError con il messaggio "This feature is not available within this context", il valore errorID sarà identico in tutte le istanze, consentendo agli sviluppatori di inibire questo valore.

  • flash.desktop.Clipboard // la chiamata alla funzione di costruzione genera; la chiamata a generalClipboard restituisce null
  • flash.desktop.NativeDragManager // isSupported restituisce false
  • flash.desktop.Updater // isSupported restituisce false
  • flash.display.NativeMenu // isSupported restituisce false
  • flash.display.NativeWindow // isSupported restituisce false
  • flash.display.ToastWindow // impossibile accedere all'istanza perché stage.window non sarà mai definito
  • flash.display.Window // impossibile accedere all'istanza perché stage.window non sarà mai definito
  • flash.external.ExtensionContext // createExtensionContext() restituisce sempre null o genera un error
  • flash.external.ExternalInterface // available restituisce false
  • flash.html.* // HTMLLoader.isSupported restituisce false
  • flash.media.CameraRoll // supportsAddBitmapData e supportsBrowseForImage restituisce false
  • flash.media.CameraUI // isSupported restituisce false
  • flash.media.StageWebView // isSupported restituisce false
  • flash.net.drm.* // DRMManager.isSupported restituisce false
  • flash.printing.* // PrintJob.isSupported restituisce false
  • flash.security.XMLSignatureValidator // isSupported restituisce false
  • flash.system.IME // isSupported restituisce false
  • flash.system.SystemUpdater // la chiamata alla funzione di costruzione genera
  • flash.text.StageText // la chiamata alla funzione di costruzione genera
  • flash.ui.ContextMenu // isSupported restituisce false
  • flash.ui.GameInput // isSupported restituisce false
  • flash.ui.Mouse // tutti i metodi sono no-op; l'impostazione della proprietà 'cursor' è un no-op

Modifiche comportamentali alle API

Il comportamento delle API seguenti è stato modificato durante l'esecuzione da un worker di background. Alcune chiamate su metodi sono no-op, mentre altre generano un IllegalOperationError o equivalente poiché è coerente con l'API documentata. I valori restituiti devono essere, nei limiti consentiti, coerenti con la documentazione. Ad esempio, se un metodo restituisce un array contenente elementi in condizioni normali, durante l'esecuzione da un worker di background, restituisce un array vuoto.

  • flash.accessibility.Accessibilty
    • active // restituisce sempre false
    • updateProperties(); // no-op
  • flash.desktop.NativeApplication** proprietà

·          

  • flash.display.Stage
    • allowsFullScreen // restituisce sempre false
    • stage3Ds // restituisce sempre vettore vuoto
    • stageVideos // restituisce sempre vettore vuoto
    • supportsOrientationChange // restituisce sempre false
    • wmodeGPU // restituisce sempre false
  • flash.filesystem.File
    • browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // no-op
  • flash.net.FileReference** browse(), download(), save() // no-op; restituisce sempre false
  • flash.net.FileReferenceList** browse() // no-op; restituisce sempre false
  • flash.system.System
    • ime // restituisce sempre null
    • exit() // forza l'interruzione e l'arresto di questo worker di background
    • setClipboard() // no-op
  •  
    • metodi
      • activate(), clear(), copy(), cut(), paste(), selectAll() // no-op
      • exit() // forza l'interruzione e l'arresto di questo worker di background
    • eventi
      • è supportato solo l'evento esistente – questo evento viene inviato in caso di arresto del worker (accade con chiamate del metodo del ciclo di vita o arresto del worker “principale”, ovvero, chiusura del runtime; non annullabile dal worker di background)
    •  
      • supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // restituiscono tutti false
      • activeWindow // restituisce null
      • autoExit // la funzione setter è un no-op
      • idleThreshold // la funzione setter è un no-op
      • openedWindows // restituisce un array [] vuoto
      • systemIdleMode // la funzione setter è no-op

Possibilità di accesso a GPU migliorata - Profilo Stage3D vincolato

È stato introdotto un nuovo parametro per Context3D denominato "profilo". Questo parametro viene fornito alla funzione Stage3D.requestContext3D() ed è possibile assegnare uno di due valori Context3DProfile.BASELINE ("baseline") che restituisce il Context3D tipico presente nelle versioni precedenti, o Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained") che restituisce un nuovo tipo di Context3D in grado funzionare con accelerazione hardware su GPU supportati in precedenza. Il profilo vincolato consente agli autori di contenuto di creare contenuto Stage3D specificando sistemi più vecchi utilizzando schede grafiche quali Intel® GMA 900/950 su Windows®. Il compromesso per l'indirizzamento di hardware di fascia più bassa con Profilo vincolato è che le funzionalità Stage3D saranno limitate per garantire che il contenuto venga eseguito senza problemi con tale hardware. Le schede quali GMA 900/950 supportano solo pixel/vertex shader versione 2.0 che forza i limiti seguenti sullo Stage3D quando è attivo il Profilo vincolato:

  • Limitata a 64 ALU e 32 istruzioni texture per shader.
  • Solo 4 indirection di lettura texture per shader.
  • Limitata a una quantità più piccola di costanti/varying/temp per shader.
  • Nessun supporto per registro predicato. Questo influenza sln/sge/seq/sne e deve essere sostituito con istruzioni mov/cmp composte che sono disponibili con ps_2_0 (questo verrà eseguito internamente al sistema utilizzando più slot istruzione rispetto a ps_2_x).
  • Il buffer di backup Context3D deve essere sempre interno ai limiti dello stage.
  • All'interno di un'istanza di Flash Player, è consentita una sola istanza di Context3D in esecuzione nel Profilo vincolato.
  • Come per i dispositivi mobili, gli elementi dell'elenco di visualizzazione Flash classico non verranno aggiornati quando il contenuto Stage3D vincolato è visibile, a meno che non venga chiamata Context3D.present().

Il "profilo" è il secondo parametro opzionale del metodo requestContext3D. Gli sviluppatori possono richiedere che il profilo "baselineConstained" sia un Context3D in modalità vincolata, come mostrato dall'API sottostante: function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
Esempio:

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

Distribuzione AIR diretta utilizzando ADT

Installazione:
Per installare un IPA su un dispositivo, utilizzate il seguente comando:
adt -installApp -platform ios -device <deviceID> -package <ipa-file> 
Disinstallazione:
Per disinstallare un IPA da un dispositivo, utilizzate il seguente comando:
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id> 
<deviceID> del dispositivo collegato sarebbe il valore "Handle" elencato dal seguente comando:
@SDKLocation/bin/adt –devices –platform ios 
<app-id> è specificato nel file descrittore dell'applicazione (app.xml) all'interno del tag <id>. Se create il progetto utilizzando Flash Builder, per impostazione predefinita, coincide con il nome della app. 

Se un solo dispositivo è collegato al desktop, omettete l'argomento '-device <deviceID> ' e l'applicazione verrà installata/disinstallata sul dispositivo collegato.
adt -installApp -platform ios -package <ipa-file> 

Notifiche push iOS

1)     L'identificatore dell'app (tag id) nell'app-xml deve essere identico all'identificatore dell'applicazione del certificato di provisioning mobile abilitato con le notifiche push.
2)     Includete l'entitlement aps-environment nel descrittore dell'app:

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

Per l'invio dell'app all'App Store con l'opzione Notifiche Push abilitata, occorre impostare aps-environment su production. Lo sviluppatore deve usare il profilo di provisioning con abilitate le notifiche push. Eseguite un controllo incrociato degli Entitlements dell'app firmata utilizzando il comando seguente.

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

3) Utilizzate la nuova classe flash.notification aggiunta nell'applicazione per abilitare il supporto per le notifiche push. Ad esempio,

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

L'applicazione client può memorizzare nel suo pacchetto le stringhe del messaggio di avviso tradotte per ciascuna localizzazione supportata. Il fornitore specifica le proprietà loc-key e loc-args nel dizionario aps del payload di notifica. Quando il dispositivo riceve la notifica, utilizza le proprietà del dizionario aps per individuare e formattare la stringa localizzata per la lingua corrente che viene poi visualizzata all'utente.

Le stringhe localizzate devono trovarsi nel file denominato Localizable.strings nella cartella <language>.lproj appropriata. Ogni voce in questo file dispone di una chiave e di un valore stringa localizzata, la stringa può disporre di specificatori di formato per la sostituzione di valori di variabili. Quando un'applicazione richiede una determinata stringa, ottiene la risorsa localizzata per la lingua attualmente selezionata dall'utente.

Per ricevere le notifiche remote localizzate, un'applicazione AIR deve disporre di coppie di valori chiave localizzate nel file Localizable.strings nella cartella <language>/lproj all'interno del file ipa. Per aggiungere Localizable.strings nel file ipa, lo sviluppatore deve aggiungere la rispettiva cartella <language>.lproj nel comando adt come illustrato di seguito:

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

Tenete presente che la cartella lproj deve trovarsi nella directory corrente per consentire ad adt di unire i file nella cartella lproj appropriata. Se la cartella lproj viene fornita come a/b/c/en.lproj, adt aggiunge questo come a/b/c/en.lproj e pertanto le coppie valore chiave localizzate non saranno accessibili per l'applicazione.

Opzione ADT per elencare i dispositivi mobili collegati

Potete eseguire il comando seguente per ottenere informazioni sui dispositivi iOS/AndroidTM collegati:

adt -devices -platform (android | ios)

L'utilizzo di questo comando restituisce un output del tipo seguente:

Elenco di dispositivi collegati:

Handle   DeviceClass   DeviceUUID                                                    DeviceName

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone


Supporto di gestione licenze: funzioni Flash Player Premium per applicazioni di gaming (solo Flash Player)

L'uso combinato di memoria di dominio (utilizzata da alcuni strumenti di terze parti e dal compilatore C/C++ Project "Alchemy") con accelerazione hardware Stage3D richiede una licenza. Quando si utilizzano entrambe le funzioni combinate, una filigrana informativa viene visualizzata nel debugger del contenuto di Flash Player (debug player). Questo requisito di gestione licenze non si applica al contenuto che utilizza l'accelerazione hardware Stage3D senza memoria di dominio (o memoria di dominio senza Stage3D) e non si applica all'eventuale contenuto distribuito utilizzando Adobe AIR. 

Gestione perdita dispositivo

Il contenuto privo licenza continua ad essere eseguito passando automaticamente da Stage3D a rendering software. Per garantire la corretta gestione della perdita della risorsa scheda grafica, intercettate l'evento Event.CONTEXT3D_CREATE sull'oggetto Stage3D per reinizializzare la grafica del contenuto. Potete simulare un evento di perdita dispositivo chiamando context3D.dispose(). (Tutto il contenuto di Stage3D deve gestire la perdita dispositivo, che può verificarsi anche se un computer è bloccato o se viene attivato lo screensaver.)

Opzione ADT per risolvere conflitti tra simboli ANE su iOS

Potete utilizzare il comando seguente per creare pacchetti di applicazioni mediante l'opzione:

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

Ad esempio,

 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

Utilizzate il valore yes per impedire conflitti tra simboli e il valore no per lo stesso comportamento precedente. Tenete presente che questa funzione non è ancora disponibile in Flash Builder/Flash Professional.

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


Texture e alfa compresse


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

Linee guida per la creazione di contenuto

Creazione di contenuto per Flash Player 11.4

Per utilizzare il nuovo Flash Player, è necessario specificare SWF versione 17 passando un argomento del compilatore aggiuntivo al compilatore Flex: - swf-version=17. Le istruzioni sono riportate di seguito. Se utilizzate Adobe Flex SDK:

  • Scaricate il nuovo playerglobal.swc per Flash Player 11.4
  • Scaricate Flex 4.5.1 SDK (4.5.1.21328) dalla tabella Flex 4.5 SDK.
  • Installate la build nell'ambiente di sviluppo
  • In Flash Builder, create un nuovo progetto ActionScript: File -> Nuovo -> progetto ActionScript.
  • Aprite il pannello Proprietà del progetto (fate clic con il pulsante destro del mouse e scegliete Proprietà). Selezionate il compilatore ActionScript dall'elenco a sinistra.
  • Utilizzate l'opzione 'Configura Flex SDK' nell'angolo superiore destro per fare riferimento al progetto nella build 21328 di Flex. Fate clic su ok.
  • Configurate il progetto per fare riferimento a SWF versione 17
  • Aprite il pannello Proprietà del progetto (fate clic con il pulsante destro del mouse e scegliete Proprietà). Selezionate il compilatore ActionScript dall'elenco a sinistra.
  • Aggiungete agli 'argomenti del compilatore aggiuntivi' input: -swf-version=17. Ciò assicura che l'SWF risultante fa riferimento a SWF versione 17. Se compilate dalla riga di comando e non in Flash Builder, dovete aggiungere lo stesso argomento del compilatore.
  • Assicuratevi di avere installato la nuova build Flash Player 11.4 nel browser.

Creazione di contenuto per AIR 3.4 Aggiornamento allo spazio dei nomi AIR 3.4

Per accedere alle nuove API e al nuovo comportamento di AIR 3.4, dovete aggiornare il file descrittore dell'applicazione allo spazio dei nomi 3.4. Se l'applicazione non richiede le nuove API e il nuovo comportamento di AIR 3.4, non è necessario aggiornare lo spazio dei nomi. Tuttavia, si consiglia a tutti gli utenti di iniziare a utilizzare lo spazio dei nomi di AIR 3.4 anche se ancora non si sfruttano le nuove funzionalità 3.4. Per aggiornare lo spazio dei nomi, modificate l'attributo xmlsn nel descrittore dell'applicazione in: <application xmlns="http://ns.adobe.com/air/application/3.4">

Segnalazione di un bug

Se è stato individuato un bug, inviate eventuali segnalazioni di bug al database dei bug di Flash Player e Adobe AIR.

Flash Player e AIR possono sfruttare le capacità del vostro hardware grafico per decodificare e riprodurre i video H.264. Determinati problemi relativi al video potrebbero essere riproducibili solo con una combinazione particolare di hardware grafico e driver. Quando segnalate un problema relativo al video, è essenziale che specifichiate l'hardware grafico e il driver, nonché il sistema operativo e il browser (quando usate Flash Player), in modo da consentirci di riprodurre e studiare i problemi. Ricordatevi sempre di includere queste informazioni, così come spiegato nelle Istruzioni per la segnalazione di problemi di riproduzione video. Nota: a causa dell'elevato numero di e-mail ricevute, non è possibile rispondere a tutte le richieste.

Grazie per aver utilizzato Adobe® Flash Player® e AIR® e per il tempo che dedicherete all'invio dei vostri commenti e suggerimenti.

Requisiti di sistema

Per i requisiti di sistema Flash Player e AIR più recenti, consultate questo documento


Cronologia versioni runtime

 

Data di rilascio Versione runtime Miglioramenti della sicurezza
21 agosto 2012 Flash Player Desktop (Windows, Mac): 11.4.402.265
AIR (Windows, Mac, dispositivi mobili): 3.4.0.2540
AIR SDK: 3.4.0.2540
 APSB12-19

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online