Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.
Adobe Flash e AIR são plataformas ubíquas para desenvolver aplicações de internet rica. O Flash é usado para aplicativos baseados em navegador e AIR é utilizada para desenvolver aplicações de plataforma nativa. Ambas as plataformas têm apoio considerável para a globalização. Recursos de globalização habilitação como formatação do locale / parsing, colação, case transforms, localização e multi-lingual de processamento de texto são suportados por ambas as plataformas. Mas alguns recursos mais globalização como a normalização de texto, Transliteração, Unicode propriedades de caracteres, conversões de codificação, detecções charset, Utilitários seqüência de caracteres Unicode etc ainda estão desaparecidas no Adobe AIR e plataformas em Flash. Uma das principais razões para não adicionar todos esses recursos dentro das plataformas Adobe tempo de execução é o tamanho do software.
Para superar o problema limitação de tamanho, Adobe AIR e Flash pode chamar os serviços de bibliotecas dinâmicas externas por meio do ActionScript. Existem algumas bibliotecas conhecidas externo, que tem suporte a globalização ricos, como UTI, GNU glib, Verisign IDN biblioteca para citar alguns. Felizmente a próxima Adobe AIR 3.0 (agora disponível como Adobe pré-lançamento) tem um recurso maravilhoso chamado ActionScript extensões nativas, que é cerca de interface de programação ActionScript para uma biblioteca de código nativo como o MS Windows DLL, Os X FrameWork, Android JAR ou biblioteca compartilhada ou iOS biblioteca estática. Por favor, consulte Adobe AIR3 site beta http://labs.adobe.com/technologies/flashplatformruntimes/air3/ sobre como baixar e participar do Adobe AIR de pré-lançamento. Por favor, tome nota que este recurso é _somente_ extensões nativas disponíveis no Adobe AIR plataforma, não na plataforma Flash.
Neste blog, Eu demonstrei a amostra (Baixarair_icu )aplicativo para invocar UTI de um aplicativo Adobe AIR em plataforma Windows. Os leitores são advertidos de que este é apenas software amostra ilustração e por nenhum software de qualidade dos meios de produção. Por isso os leitores devem exibir discrição no uso deste software como é. O exemplo ilustra UTI quebra de palavra, quebrando sentença, utf-conversão e verificação de propriedade de caracteres Unicode.
Você vai precisar do software a seguir para construir uma extensão da UTI para a plataforma AIR.
- MS Visual Studio 2010 (para construir AIR extensão DLL nativa codificado em C / C)
- Adobe Flex SDK 4.5.1 (http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5). Baixar isso para C:\Flex4.5.1.
- Adobe Air 3 Beta2 baixar (Para construir extensão do Adobe Actionscript) a partir de http://labs.adobe.com/technologies/flashplatformruntimes/air3/ .Descompacte este para C:\Flex4.5.1. Esta etapa substitui os componentes AIR relacionados em Flex4.5.1 sdk com o mais recente Adobe beta2 Air3. Também manter uma cópia em C:\pasta air3_beta2.
- A Adobe pré-lançamento do Flash runtime site tem mais informações, documentação e exemplos sobre como utilizar extensões ActionScript. Guia 'detalhes do produto' na http://labs.adobe.com/technologies/flashplatformruntimes/air3/ página web tem um FAQ sobre como aderir ao programa Adobe pré-lançamento.
- UTI 4.8 binários (http://site.icu-project.org/download/48). Download windows 32bit VC2010 zip. Descompacte as bibliotecas para qualquer pasta. Minha amostra baixado para C:\icu icu4.8.1 pasta win32 .--
1 Criando uma extensão de ICU para Adobe AIR
Adobe AIR extensões nativas t, também conhecido como 'ane' ou 'ANE "os processos foram arquivados pacotes. Estes consistem em
- Classes wrapper ActionScript pôr em DLLs externas
- O DLLs externas
- Detalhes do arquivo XML descrevendo de DLLs externas
Os arquivos arquivados ANE são usados apenas como bibliotecas SWC na integração em um aplicativo AIR. Em outras palavras, ANE arquivo é uma biblioteca e tem público ActionScript APIs.
Cobrindo todos os detalhes sobre a extensão ActionScript é demais para este artigo no blog, mas eu vou explicar os passos para criar esse exemplo e executar. Abaixo estão as etapas seqüenciais e comandos.
1.1 Criando uma DLL de extensão para AIR Windows
1)A pasta tem AirIcuExtensionWin 'AirIcuExtension.sln "a solução do Visual Studio. Abrir esta em MS VS2010.
2)O AIRIcuExtension.cpp arquivo tem o código necessárias para interface com Adobe AIR 3 beta 2. Tem também as rotinas wrapper chamar funções C UTI.
3)Este é um projeto DLL ea saída é construir AirIcuExtension.dll
1.2Construção ActionScript Biblioteca
1)Construir a biblioteca de actionscript utilizando o comando abaixo.
C:\Flex4.5.1 bin compc.exe-source-path src-include-classes com.adobe.extensions.AirIcuExtension:\air3_beta2 frameworks libs ar airglobal.swc saída-bin AirIcuExtension.swc
O AirIcuExtension.as arquivo na pasta src com adobe extensions tem o AirIcuExtension public class que chama as rotinas de UTI. Nesta amostra, chamando breaker sentença UTI, disjuntor está, normalizador, utf-conversão e de propriedade de caracteres Unicode foram ilustradas.
1.3 Embalando extensão nativa do ActionScript
Abra o bin AirIcuExtension.swc é um arquivo zipado. Abri-lo usando WinRAR ou WinZip programa e extrair o library.swf arquivo no pacote para o swc AirIcuExtension / bin pasta.
A pasta src resources contém o arquivo extension.xml, AirIcuExtension.dll e UTI dlls icudt48dll, icuuc48dll, icuio48.dll e icuin48.dll. O arquivo external.xml define os detalhes biblioteca externa para AIR runtime.
Para simplificar, coloque o AirIcuExtension.dll, UTI dlls e arquivos em extension.xml AirIcuExtension bin pasta. Todos esses arquivos são compactados em um arquivo zipado chamado AiricuExtension.ane usando o seguinte comando.
C:\air3_beta2 bin adt-package-storetype pkcs12-storepass <senha> -Keystore <Certificado de AIR> -tsa nenhum alvo ane AirIcuExtension.ane extension.xml-swc AirIcuExtension.swc-plataforma Windows x86-library.swf AirIcuExtension.dll icudt48.dll icuin48.dll icuio48.dll icuuc48.dll
Utilização Adobe FlashBuilder4.x ou C:\air3_beta2 bin ADT programa, pode-se fazer um certificado AIR.
A saída é um arquivo AirIcuExtension.ane no AirIcuExtension / bin pasta.
1.4 Criando o programa de teste AirIcuExtensionTest.mxml
Agora que nós construímos e embalados o pacote de extensão nativa AiricuExtension.ane, estamos readu usar isso e chamar os serviços de UTI em um programa de teste.
O AirIcuExtensionTest pasta src contém o arquivo de teste AirIcuExtensionTest.mxml. O arquivo descritor AirIcuExtensionTest-app.xml tem. Usando o compilador mxml, AirIcuExtensionTest.swf é construído da seguinte maneira no AirIcuExtensionTest pasta.
C:\Flex4.5.1 bin compc.exe mxmlc configname = ar-external-library-path .. AirIcuExtension bin AirIcuExtension.ane saída-bin-debug AirIcuExtensionTest.swf — src AirIcuExtensionTest.mxml
A saída de arquivos swf AirIcuExtensionTest.swf é colocado na pasta bin-debug.
1.5 Criando um package de AIR para a execução de AirIcuExtensionTest
O passo final é o pacote AirIcuExtensionTest acima. Swf e AirIcuExtension.ane arquivos em uma pasta executável AIR.
C:\air3_beta2 bin adt-package-XnoAneValidate-storetype pkcs12-storepass <senha> -Keystore <Certificado de AIR> -tsa nenhum alvo-bundle AirIcuExtensionTest.air AirIcuExtensionTest-app.xml AirIcuExtensionTest.swf-extdir .. .. AirIcuExtension bin
A saída do comando acima é uma pasta AirIcuExtensionTest.air. Dentro da pasta, lá é AirIcuExtensionTest.exe. Você pode executar e ver o resultado.
2 Conclusão
Este exemplo ilustra como invocar ICU do ActionScript. A AIR extensão UTI é fácil de construir usando o à disposição do público Adobe Flex SDK e AIR3 Beta 2 SDKs. Será muito mais fácil fazer tudo isso no futuro Adobe Flash Builder IDE usando GUI. As vantagens deste recurso são
- AIR desenvolvedores que procuram desenvolver os pedidos internacionais para desktop ou móvel têm o poder de UTI na mão. Muitas características Unicode, conversões de codificação, IDN conversão utilitários, processamento de strings, transforma e muitas características mais internacional pode ser facilmente codificado.
- A extensão de UTI materna, uma vez construída pode ser usado qualquer desenvolvedor qualquer, pois é uma biblioteca.
- O Actionscript APIs chamando UTI podem ser codificados utilizando as mesmas assinaturas como UTI C API. Isso elimina a curva de aprendizagem.
- Desde UTI é em código nativo, desempenho não seja comprometida.
- Uma vez que é UTI, os desenvolvedores podem esperar da cruz-plataforma comportamento em programas AIR.
- Uma vez que a extensão é uma biblioteca AIR, Atualizações de UTI pode ser facilmente re-embalados para o arquivo ane.
No futuro, uma vez AIR3 é liberado, um total de extensão desenvolvido na UTI nativa com definições adequadas API será um grande projeto de globalização.


Ei,
nice post.
Eu acho que isso não vai funcionar com Windows 7 64 bit, obviamente ^ ^.
Talvez você poderia oferecer algo para 64 tão bem
Saúde,
Joggl89
Obrigado pelo comentário.
Você está certo. As dlls do ICU 64 bits não funcionam com AIR 3.0. Lembro-me que não foi possível compilar a extensão DLL em VS2010. AIR 3.0 ainda não suporte 64 bits.
Temos que esperar até que este suporte exista. Aguardemos após o AIR 3.0.
Obrigado,
Harish
Só para esclarecer ainda mais. Eu testei o meu ramal no Win 7 64 bit laptop, mas usei ICU 32 dlls bit.
-Paróquia
Pingback: Extensões AIR Native Exemplo Olá Mundo & Script ANT « Aboutme – Blog
Obrigada por me começou em extensões nativas. Eu coloquei um exemplo Olá mundo & formiga roteiro on-line, com base na informação neste post. Você pode ler sobre ele & verificá-la em http://blog.aboutme.be/2011/09/12/air-native-extensions-hello-world-example-ant-script/
Eu não posso construir ane usando adt. Corri ADT em C:\air3_RC1 samples air_icu AirIcuExtension bin após a definição “set path = c:\air3_RC1 bin;%% PATH”. Tenho seguintes arquivos no diretório AirIcuExtension bin , mas eu tenho “sistema não pode encontrar o arquivo especificado.” Perdi alguma coisa?
Obrigado,
09/02/2011 03:46 PM 9,216 AirIcuExtension.dll
09/23/2011 03:16 PM 2,712 AirIcuExtension.swc
08/19/2011 08:29 AM 514 extension.xml
07/19/2011 04:43 PM 18,277,376 icudt48dll
07/19/2011 04:36 PM 1,313,792 icuin48.dll
07/19/2011 04:42 PM 36,352 icuio48.dll
07/19/2011 04:33 PM 1,043,456 icuuc48dll
09/23/2011 03:16 PM 1,867 library.swf
Qual arquivo ele não pode encontrar?
É adt? ou o arquivo de licença de ar?
Você está no diretório C:\air3_RC1 samples air_icu AirIcuExtension bin ao executar adt?
Há arquivos somany envolvidos que você tiver esse erro igual a mim quando eu corri.
Harish, Obrigado pela ajuda.
Mensagem de erro não foi suficiente detalhe para ver qual arquivo estava faltando. ADT corre tudo bem. O que é o ar arquivo de licença? Eu não posso ver qualquer instrução sobre o arquivo de licença. Que significa certificado AIR? Este erro é gerado a partir de executar adt na etapa 1.3.
Obrigado,
Eu resolvi o problema adicionando arquivo de certificado.
Obrigado pela ajuda.
Desculpe eu quis dizer AIR certificado. Você pode gerar certificados de ar usando o programa adt.
Isto é poderoso, Espero que possamos ver mais de ANES no futuro próximo
Muito bem construir sobre win7 x64 seguintes passos de sua pesquisa.
Eu só precisava copiar manualmente os arquivos * 48.dll no ar dir, Devo ter perdido embalagem de algo a respeito…
Obrigado por novos conhecimentos!
Pelo amor de Deus, por favor, nos dê um exemplo de AIR 3.0 NativeExtension com C #. Dll.
C # é mais popular em. NET framework hoje. Fui à procura amostra C # para NativeExtension. Dll de semanas e não consegui encontrar um único exemplo.
Oi James,
Desculpe, meu único exemplo ilustrado C / C, mas não C #.
Uma forma de tentar C # é dll você deve chamar dll C # a partir de uma interoperabilidade C usando dll (Apenas google para chamar C # do C ). O C dll deve implementar todos AIR cola quadro necessário como no meu exemplo aqui. Este é apenas o meu palpite.
Olá James,
onde você é capaz de fazer o trabalho com c #?
Eu também estou procurando um exemplo em c #
ANE Exemplo aqui
http://marbayclip.blogspot.com/search/label/ANE
Pingback: Invocando UTI a partir de aplicativos Adobe AIR (Parte 2): usando o Flash Builder 4.6 » Globalização na Adobe
Depois que eu terminar todas as etapas, Eu tenho um problema quando eu executar o arquivo exe. No ar pasta
Ele pula uma mensagem de e.g. ” não pode encontrar o componet icuuc48.dll”
mas eu encontrei o arquivo “icuuc45dll” na pasta Windows x 86 ~ como o seguinte
\AirIcuExtensionTest.air\META-INF\AIR\extensions\com.adobe.extensions.AirIcuExtension\META-INF\ANE\Windows-x86
Posso perder alguma coisa?
obrigado
P.S. por favor, perdoe o meu Inglês pobres ><
O icuuc48.dll devem estar presentes na mesma pasta onde o arquivo. Exe reside. De fato todas as dlls UTI deve estar lá.
A outra forma é adicionar o icu localtion pasta dll para janelas variável de caminho.
graças harish suvarna ‘s ajuda