11 de junho de 2013. Bem-vindo ao Flash Player 11.7 e ao AIR 3.7. Esta é uma atualização agendada. Esta versão contém algumas correções de erros e aprimoramentos de segurança.
- A câmera não está funcionando para o stageVideo (iOS) (3558247)
- Nenhuma opção para desativar a aceleração de hardware (3560209)
- Nenhuma opção para realizar fallback ao áudio WAV (3553459)
- Aprimoramento da caixa de proteção
- Impedir backup na nuvem para objetos compartilhados (iOS)
- Usar o modo de renderização da CPU para dispositivos selecionados (iOS)
- Hospedar externamente arquivos SWF secundários (iOS)
- API Game Input (Android)
Resultado | Versão lançada |
Flash Player Desktop (Mac) | 11.7.700.225 |
Flash Player Desktop (Win) | 11.7.700.224 |
AIR Desktop (Mac) | 3.7.0.2100 |
AIR Desktop (Win) | 3.7.0.2090 |
AIR Mobile | 3.7.0.2090 |
AIR SDK & Compiler (Mac) | 3.7.0.2100 |
AIR SDK & Compiler (Win) | 3.7.0.2090 |
- Alguns drivers de GPU AMD mais recentes apresentam problemas de renderização em algumas circunstâncias (3431502)
- A webcam falha ao ser usada em conjunto com o Microsoft Kinect (3482709)
- No AIR for iOS, não é possível empacotar nomes localizados de SWFs (3518195)
- No AIR for iOS, colocar o foco em um componente TextArea do Spark podem fazer com que o texto seja truncado (3514889)
- Longas descrições de aplicativos na caixa de diálogo de instalação do AIR faz com que os botões não fiquem visíveis (3515305)
- Leve atraso na repetição de vídeos do FLVPlayback (3515066)
- Bitmaps grandes reduzidos não são renderizados corretamente quando publicados (3520589)
- No AIR, itens de menus de contexto personalizados disparam eventos adicionais (3493614)
- No navegador Chrome, trocar microfones durante o runtime causa uma falha (3493587)
- No Internet Explorer, quando o conteúdo Flash sai de visualização ao usar a barra de rolagem, o áudio pode ficar difícil de entender (3520586)
- O áudio AAC fica distorcido ao conectar um microfone avançado com AEC (3523551)
Impedir backup na nuvem para objetos compartilhados (iOS)
No momento, um desenvolvedor de aplicativos AIR para iOS não pode impedir que os dados de objetos locais compartilhados sejam armazenados no Apple iCloud. Com o AIR 3.7, uma nova propriedade estática, "preventBackup", foi introduzida à classe SharedObject ActionScript, o que permitirá que os desenvolvedores solucionem essa limitação. Essa propriedade pode ser usa somente com o 3.7 ou com namespaces superiores (swf-version=>20). Definir essa propriedade como true impedirá o backup de todos os objetos compartilhados. O valor padrão da propriedade é false. Essa propriedade só funciona em dispositivos com o iOS 5.1 ou superior.
var mySO:SharedObject; mySO = SharedObject.getLocal("test"); mySO.data.userName = "developer"; mySO.data.itemNumbers = new Array(1,2,3); SharedObject.preventBackup = true; mySO.flush();
Usar o modo de renderização da CPU para dispositivos selecionados ao usar a GPU em outros(iOS)
Uma nova tag, <forceCPURenderModeForDevices>, foi adicionada para dispositivos iOS. Ela pode forçar o modo de renderização da CPU para um determinado conjunto de dispositivos iOS e utilizar o renderMode da GPU para todos os demais dispositivos. Esse recurso pode ser usado quando o modo de renderização da GPU resultar em memória insuficiente para alguns dispositivos de qualidade mais baixa (como o iPad 1 e o iPod 4).
Por exemplo: se especificarmos <renderMode> GPU </renderMode> e <forceCPURenderModeForDevices> iPhone1 iPad1 </forceCPURenderModeForDevices>, todos os dispositivos iOS diferentes do iPad 1 e do iPhone 1 utilizarão o renderMode da GPU.
Observe que essa tag se aplica apenas ao iOS no momento. Ela deve ser adicionada a seção específica da plataforma na tag do iPhone.
<iPhone> <InfoAdditions> <![CDATA[ <key>UIDeviceFamily</key> <array> <string>1</string> <string>2</string> </array> <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>YES</string> ]]> </InfoAdditions> <forceCPURenderModeForDevices> iPhone3,1 iPad </forceCPURenderModeForDevices> </iPhone>
A tag <forceCPURenderModeForDevices> foi adicionada na tag iPhone e aceita uma lista separada por espaços de nomes de modelos de dispositivos. Alguns nomes válidos para modelos de dispositivos estão listados abaixo.
"iPod4,1" // iPod Touch Fourth Generation "iPod5,1" // iPod Touch Fifth Generation "iPhone2,1" // iPhone 3GS "iPhone3,1" // iPhone 4 "iPhone3,2" // iPhone 4 CDMA "iPhone4,1" // iPhone 4S "iPhone5,1" // iPhone 5 "iPad1,1" // iPad "iPad2,1" // iPad 2 "iPad2,2" // iPad 2 (GSM) "iPad2,3" // iPad 3 (CDMA) "iPad2,4" // iPad 3 (CDMAS) "iPad2,5" // iPad Mini Wifi "iPad3,1" // iPad 3 (WIFI) "iPad3,2" // iPad 3 (CDMA) "iPad3,3" // iPad 3 GSM "iPad3,4" // iPad 4 (Wifi)
Hospedar externamente arquivos SWF secundários (iOS)
Desenvolvedores de aplicativos agora podem hospedar seus SWFs secundários em um servidor externo e carregá-los sob demanda de acordo com a lógica de seus aplicativos. SWFs secundários com códigos ABC no modo AOT, que funcionavam apenas para SWF empacotados localmente, agora também funcionarão para carregar SWFs externamente.
O desenvolvedor deverá alterar o URL do URLRequest do Loader para o URL do seu SWF sem código hospedado externamente. Uma amostra de solicitação de URL para usar esse recurso:
private var externalSwfUrl:String= "http://www.xyz.com/ExternalSwf.swf"; private var urlRequest:URLRequest = new URLRequest(externalSwfUrl);
Para ativar esse recurso, um desenvolvedor deverá especificar um arquivo de texto com os detalhes dos arquivos SWD que deverão ter seu código removido e ser hospedados externamente. Nesse arquivo de texto, o desenvolvedor deve especificar caminhos separados por linhas dos SWFs que devem ser hospedados externamente. O formato para especificar arquivos SWD em um arquivo .txt de amostra é o seguinte:
assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf
Esse arquivo de texto deve ser mencionado na tag <externalSwfs> dentro da tag <iPhone> dentro do descritor do aplicativo, conforme é mostrado abaixo:
<iPhone> . . <externalSwfs>assets/SampleSWFInfoFile.txt</externalSwfs> . . </iPhone>
Durante o empacotamento do ADT, o desenvolvedor deve especificar o arquivo de texto como se fosse um ativo juntamente com o conjunto de SWFs especificado no arquivo de texto. Uma amostra de comando ADT para usar esse recurso:
adt -package -target ipa-app-store -provisioning-profile <Provisioning Profile> -storetype pkcs12 -keystore <Certificate> -storepass <Password> ResultantIPA.ipa SampleMainSwf-app.xml SampleMainSwf.swf assets/SampleSWFInfoFile.txt assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf
Durante o empacotamento do IPA, o ADT extrai o código Actionscript de todos os SWFs filhos especificados no arquivo de texto de amostra, o adiciona ao executável final e move os SWFs sem códigos para a pasta "externalStrippedSwfs" criada no diretório de trabalho atual. A estrutura do diretório dentro da pasta "externalStrippedSwfs" permanece a mesma especificada no arquivo de texto. Os SWF sem códigos gerados podem ser armazenados externamente em um servidor da Web.
Uma amostra de código Actionscript de trabalho que carrega um SWF secundário derivado do uso do fluxo de trabalho acima de um servidor externo seria:
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; public class SampleMainSwf extends Sprite { private var externalLoader:Loader; private var url:String= "http://www.xyz.com/Level1.swf"; private var urlRequest:URLRequest = new URLRequest(url); private var ldrContext:LoaderContext; public function SampleMainSwf() { externalLoader = new Loader(); externalLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); externalLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler); ldrContext=new LoaderContext(false,ApplicationDomain.currentDomain,null); try { externalLoader.load(urlRequest, ldrContext); } catch(e:Error) { trace("Error ID : "+e.errorID+"\nError Message : "+e.message); } } private function completeHandler(e:Event):void { addChild(externalLoader); } private function errorHandler(e:IOErrorEvent):void { trace("In IO ErrorEvent Handler"); } } }
Observação:
1. As versões atuais do Flash Builder 4.7/Flash Professional CS6 não são compatíveis com esse recurso. Para ativar a geração de SWFs sem códigos para hospedagem externa, o empacotamento de ADT de linhas de comando deve ser usado.
2. O carregamento de SWFs secundários Flex faz com que o aplicativo falhe.
API GameInput (Android)
A API GameInput é uma interface que permite que os aplicativos se comuniquem com dispositivos de entrada de jogos conectados (joysticks, gamepads, varinhas etc.). Existe uma ampla gama de dispositivos de entrada de jogos com diferentes recursos e controles. Essa API só é compatível com dispositivos Android que executem o sistema operacional de versão 4.1 ou superior. Essa API é implementada de maneira que possa funcionar bem com diferentes (e possivelmente desconhecidos) tipos de dispositivos de entrada de jogos.
Esse recurso só podem ser usado com o namespace 3.7 ou superior e exige que a versão mínima do SWF seja igual a 20.
private var gameInput:GameInput; public function TestGameInput() { trace("GameInput.isSupported - "+ GameInput.isSupported); trace("GameInput.numDevices - "+ GameInput.numDevices); gameInput = newGameInput(); gameInput.addEventListener(GameInputEvent.DEVICE_ADDED, inputDeviceAddedEvent); gameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, inputDeviceRemovedEvent); function inputDeviceRemovedEvent(e:GameInputEvent):void { trace("inputDeviceRemovedEvent - "+ e.device); } function inputDeviceAddedEvent(e:GameInputEvent):void { trace("inputDeviceAddedEvent - "+ e.device); getDeviceInformation(e.device); } function getDeviceInformation(device:GameInputDevice):void { trace("device.enabled - "+ device.enabled); trace("device.id - "+ device.id); trace("device.name - "+ device.name); trace("device.numControls - "+ device.numControls); trace("device.sampleInterval - "+ device.sampleInterval); for(var i:Number=0; i < device.numControls; i++) { var control:GameInputControl = device.getControlAt(i); getControlInformation(control); control.addEventListener(Event.CHANGE, changeEvent); } } function changeEvent(e:Event):void { var control:GameInputControl = e.target as GameInputControl; getControlInformation(control); } function getControlInformation(control:GameInputControl):void { trace("control.device - "+ control.device); trace("control.value - "+ control.value); trace("control.minValue - "+ control.minValue); trace("control.maxValue - "+ control.maxValue); trace("control.id - "+ control.id); } }
Autoria para o Flash Player 11.7
Para usar o novo Flash Player, você precisará direcionar para o SWF versão 20, passando em um argumento do compilador extra para o compilador Flex: -swf-version=20. As orientações estão abaixo. Se estiver usando o SDK do Adobe Flex:
- Faça o download do novo playerglobal.swc para Flash Player 11.7
- Faça o download do SDK Flex 4.5.1 (4.5.1.21328) da tabela do SDK Flex 4.5 SDK.
- Instale a compilação no ambiente de desenvolvimento
- No Flash Builder, crie um novo projeto ActionScript: Arquivo -> Novo -> Projeto ActionScript.
- Abra o painel Propriedades do projeto (clique com o botão direito do mouse e escolha 'Propriedades'). Selecione Compilador do ActionScript na lista à esquerda.
- Use a opção 'Configurar SDKs Flex' no canto superior direito para apontar o projeto para o Flex compilação 21328. Clique em ok.
- Configure seu projeto direcionado para SWF versão 20
- Abra o painel Propriedades do projeto (clique com o botão direito do mouse e escolha 'Propriedades'). Selecione Compilador do ActionScript na lista à esquerda.
- Adicione à entrada "Argumentos de compilador adicionais": -swf-version=20. Isso assegura que o SWF resultante seja direcionado para SWF versão 20. Se compilar na linha de comando e não no Flash Builder, você precisará adicionar o mesmo argumento de compilador.
- Certifique-se de ter instalado a nova compilação 11.7 do Flash Player em seu navegador.
Autoria no AIR 3.7 Atualizar para o namespace do AIR 3.7
Você precisa atualizar o arquivo descritor do aplicativo para o namespace 3.7 para acessar as novas APIs e o novo comportamento do AIR 3.7. Se o seu aplicativo não precisar do novo comportamento e das novas APIs do AIR 3.7, não será necessário atualizar o namespace. No entanto, recomendamos que todos os usuários comecem a usar o namespace AIR 3.7 mesmo que ainda não esteja aproveitando os novos recursos do 3.7. Para atualizar o namespace, altere o atributo xmlns no descritor do aplicativo para: <application xmlns="http://ns.adobe.com/air/application/3.7">
Encontrou um erro? Envie um erro ao banco de dados de falhas do Flash Player e Adobe AIR.
O Flash Player e o AIR podem alavancar seu hardware gráfico para decodificar e reproduzir vídeo H.264. Pode haver problemas de vídeo que só podem ser reproduzidos com seu hardware gráfico e driver específicos. Ao relatar um problema envolvendo vídeo, é importante anotar seu hardware gráfico e driver, junto com seu sistema operacional e navegador (ao usar Flash Player), para que possamos reproduzir e investigar os problemas. Certifique-se de incluir estas informações conforme descrito em Instruções para relatar problemas de reprodução de vídeo. Observação: Devido ao alto volume de emails que recebemos, não é possível respondermos a cada solicitação.
Obrigado por usar o Adobe® Flash Player® e o AIR® e por dedicar seu tempo a nos enviar seu feedback!
Data de lançamento | Versão do runtime | Aprimoramentos de segurança |
21 de maio de 2013 | Flash Player para Desktop (Windows, Mac): 11.7.700.203 Flash Player (Chrome): 11.7.700.203 |
- |
14 de maio de 2013 | Flash Player para Desktop (Windows, Mac): 11.7.700.202 AIR Desktop, iOS, Android: 3.7.0.1860 AIR SDK e Compilador: 3.7.0.1860 |
APSB13-14 |
9 de abril de 2013 | Flash Player para Desktop (Windows, Mac): 11.7.700.169 Flash Player para Chrome: 11.7.700.179 AIR Desktop, iOS: 11.7.0.1530 AIR Android: 11.7.0.1660 AIR SDK: 11.7.0.1530 AIR SDK e Compilador: 11.7.0.1530 |
APSB13-11 |
12 de março de 2013 | Flash Player para Desktop (Windows, Mac): 11.6.602.280 AIR Windows, Mac, Android, iOS: 3.6.0.6090 AIR SDK: 3.6.0.6090 AIR SDK e Compilador: 3.6.0.6090 |
APSB13-09 |
26 de fevereiro de 2013 | Flash Player para Desktop (Windows, Mac): 11.6.602.171 | APSB13-08 |
12 de fevereiro de 2013 | Flash Player para desktop (Windows): 11.6.602.168 Flash Player para Desktop (Mac): 11.6.602.167 AIR Windows, Mac, Android, iOS: 3.6.0.597 AIR SDK e Compilador: 3.6.0.599 |
APSB13-05 |
7 de fevereiro de 2013 | Flash Player para Desktop (Windows, Mac): 11.5.502.149 | APSB13-04 |
8 de janeiro de 2013 | Flash Player Desktop (Windows, Mac): 11.5.502.146 AIR (Windows, Mac, Mobile): 3.5.0.1060 AIR SDK: 3.5.0.1060 |
APSB13-01 |
11 de dezembro de 2012 | Flash Player Desktop Windows: 11.5.502.135 Flash Player Desktop Mac: 11.5.502.136 AIR Windows, Android: 3.5.0.880 AIR Mac: 3.5.0.890 |
APSB12-27 |
6 de novembro de 2012 | Flash Player Desktop (Windows, Mac): 11.5.502.110 AIR (Windows, Mac, Mobile): 3.5.0.600 AIR SDK: 3.5.0.600 |
APSB12-24 |
8 de outubro de 2012 | Flash Player Desktop (Windows, Mac): 11.4.402.287 AIR (Windows, Mac, Mobile): 3.4.0.2710 AIR SDK: 3.4.0.2710 |
APSB12-22 |
21 de agosto de 2012 | Flash Player Desktop (Windows, Mac): 11.4.402.265 AIR (Windows, Mac, Mobile): 3.4.0.2540 AIR SDK: 3.4.0.2540 |
APSB12-19 |