Invocando UTI a partir de aplicativos Adobe AIR (Parte 2): usando o Flash Builder 4.6

Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.

Em meu artigo anterior http://blogs.adobe.com/globalization/invoking-icu-from-adobe-air-applications-2, eu demonstrei o use das extensões de AIR3 ActionScript nativa característica de invocar UTI de um aplicativo AIR. Eu usei as ferramentas de desenvolvedor AIR para compilar e criar vários componentes. Neste artigo, Eu demonstro o mesmo usando a versão pré-lançamento do Adobe Flash Builder 4.6. É muito mais simples de fazer isso no Flash Builder evitando a linha de comando complicado.

A versão pré-lançamento do Adobe Flash Builder4.6 tem uma nova versão do Flex SDK 4.5.2, que tem AIR3 integrada. Faça o download do arquivos de exemplo da seguinte forma.

Você vai precisar do software a seguir para construir uma extensão da UTI para a plataforma AIR.

1 Extensão UTI Edifício 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 DLL Edifício do Windows Extensão AIR UTI

1) A pasta AirIcuExtensionWin tem o estúdio Visual solução "AirIcuExtension.sln '. Abrir esta em MS VS2010.

2) O AIRIcuExtension.cpp arquivo tem o código necessário necessário para fazer a interface com o Adobe AIR 3. Tem também as rotinas wrapper chamar funções C UTI.

3) Este é um projeto DLL ea saída de construção é AirIcuExtension.dll

1.2 Edifício ActionScript Biblioteca em FB 4.6

1.2.1 A construção da biblioteca ActionScript

Criar um novo projeto de biblioteca ActionScript e nomeá-la AirIcuExtension. Ver o projeto de biblioteca baixado ActionScript FB4.6.

1.2.2 Embalagem extensão nativa ActionScript

Para um pacote ANE, você ainda precisa fazê-lo na linha de comando. FB 4.6 não tem ainda uma característica de gerar ANES no IDE.

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:\FB4.6 SDKs 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.6 ou C:\FB4.6 SDKs bin ter tomado programa, pode-se gerar um certificado AIR.

A saída é um arquivo AirIcuExtension.ane no AirIcuExtension bin pasta.

1.3 Construindo o AirIcuExtensionTest.mxml Programa de teste

Agora que nós construímos e embalados o pacote de extensão nativa AiricuExtension.ane, estamos prontos para usar esse e chamar os serviços de UTI em um programa de teste.

A pasta AirIcuExtensionTest src contém o arquivo de teste AirIcuExtensionTest.mxml. O arquivo descritor AirIcuExtensionTest-app.xml tem os detalhes de extensão nativa.

Flash Builder 4.6 tem um novo recurso para ligar aplicações Flash com arquivos ANE. Como você vê a partir do comando FB4.6 propriedades do projeto "Flex Build Path", há uma nova guia para Native Extensions. Utilização 'Ed Lane' botão, adicione o arquivo presente na pasta AirIcuExtension.ane AirIcuExtension / bin, como mostrado abaixo.

Veja também o comando 'Pacote Construindo Flex' nas propriedades do projeto, há uma nova guia para Extensão nativa. Por favor, certifique-se que a caixa de seleção é AiricuExtension Em.

A saída de arquivos swf AirIcuExtensionTest.swf é colocado na pasta bin-debug.

1.4 Construir pacote AIR para executar AirIcuExtensionTest

O passo final é para empacotar o AirIcuExtensionTest acima. Swf e arquivos AirIcuExtension.ane em uma pasta executável AIR. Podemos fazer isso em FB4.6 agora, em vez de usar a linha de comando tedioso.

  • IN FB4.6, selecione AiricuExtensionProject e executar o comando menu Project->Exportação de Lançamento Construir ...
  • Na caixa de diálogo que se seguiu, escolher Assinado instalador nativo botão de rádio. Só podemos criar instaladores nativos, como estamos usando OS específicos pacote ANE.
  • Na tab Native Extensions tab, certifique-se que a checkbox AirIcuExtension.ane esteja selecionada.
  • Terminar de criar a versão de compilação depois de entrar as credenciais certificado correto AIR.

A saída do comando acima é um instalador AirIcuExtensionTest.exe. Ao executá-lo, você pode instalar o programa de teste.

2 Conclusão

Este exemplo ilustra como invocar ICU do ActionScript. A AIR extensão UTI é fácil de construir usando os próximos AdobeFlash Builder 4.6 lançamento. ANE é um ótimo recurso para os desenvolvedores AIR e aplicações AIR pode fazer uso da plataforma ou UTI desde serviços de globalização.

Invocando UTI a partir de aplicativos Adobe AIR

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 (Baixar air_icu ) aplicação para invocar UTI de um aplicativo Adobe AIR na 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.

1 Extensão UTI Edifício 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 DLL Edifício do Windows Extensão AIR UTI

1) A pasta AirIcuExtensionWin tem o estúdio Visual solução "AirIcuExtension.sln '. Abrir esta em MS VS2010.

2) O AIRIcuExtension.cpp arquivo tem o código necessário necessário para fazer a interface com o Adobe AIR 3 beta 2. Tem também as rotinas wrapper chamar funções C UTI.

3) Este é um projeto DLL ea saída de construção é AirIcuExtension.dll

1.2 Edifício ActionScript Biblioteca

1) Construa a biblioteca ActionScript usando o comando abaixo.

C:\Flex4.5.1 bin compc.exe-source-path src-incluem-classes com.adobe.extensions.AirIcuExtension-library-path externo C:\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 Embalagem extensão nativa 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 Construindo o AirIcuExtensionTest.mxml Programa de teste

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 os detalhes de extensão nativa. 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 Construir pacote AIR para executar AirIcuExtensionTest

O passo final é para empacotar o AirIcuExtensionTest acima. Swf e arquivos AirIcuExtension.ane em uma pasta executável AIR. Execute o seguinte comando

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.

A auto-complete leve ActionScript exemplo com uma trie

Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.


Auto-completar funcionalidade é amplamente utilizado através da internet e aplicativos móveis. Um monte de sites e aplicativos tentar completar a sua entrada, logo que você começa a digitar. Neste post, Gostaria de introduzir um simples ActionScript solução de auto-completar usando estrutura de dados trie.

Uma trie é uma árvore ordenada estrutura de dados que é usado para armazenar uma matriz associativa. Todos os descendentes de um nó têm um prefixo comum da seqüência associada a esse nó, ea raiz é associado com a string vazia. A partir do nó raiz, você pode verificar se uma palavra existe na trie facilmente por ponteiros seguintes correspondentes às letras na palavra-alvo. Trie é uma conhecida estrutura de dados em ciência da computação; você pode encontrar informações detalhadas sobre trie através Wikipedia.

Aqui está uma aplicação simples em ActionScript trie:

/**
* Uma estrutura de dados simples para armazenar e procurar palavras.
* @ See http://en.wikipedia.org / wiki / Trie para obter detalhes adicionais.
*/

public class Trie {
private var _rootKeys:Array;
public function Trie():void {
_rootKeys=[];
}

/**
* Retornar uma lista de palavras que têm o prefixo dado.
*/

public function get(prefix:String):Array {
var results:Array=[];
var letter:String=prefix.substr(0,1);
var root:TrieNode=_rootKeys[letter];
if (root) {
getWordList(prefix, 1, root, results);
}
return results;
}

/**
* Adicionar uma palavra para o objeto que pode ser comparada como um prefixo.
*/

public function add(word:String):void {
var letter:String=word.substr(0,1);
var root:TrieNode=_rootKeys[letter];


if (!root) {
root=createNode(letter);
_rootKeys[letter]=root;
}
insertWord(word, 1, root);
}


private function traverse(root:TrieNode, results:Array, prefix:String):void {
if(root.children) {
for each( var c:TrieNode in root.children ) {
var node:TrieNode = c as TrieNode;
if( node.word ) {
results.push( prefix + node.value);
}
traverse(node, results, prefix+node.value );
}
}
}


private function getWordList(prefix:String,
position:uint,
root:TrieNode,
results:Array):void {
var letter:String=prefix.substr(position,1);
var child:TrieNode=root.children[letter];
if (!letter || !child) {
return;
}


if ( position<(prefix.length-1) ) {
getWordList(prefix, ++position, child, results);
}else {
if (!child.word) {
traverse( child, results, prefix);
}
}

}


private function insertWord(word:String,
position:uint,
root:TrieNode):void {
var letter:String=word.substr(position,1);
if (position==word.length || !letter) {
return;
}


var child:TrieNode=root.children[letter];
if (! child) {
child=createNode(letter);
root.children[letter]=child;
}


if (position==word.length-1) {
child.word=true;
} else {
insertWord(word, ++position, child);
}
}


private function createNode(letter:String):TrieNode {
return new TrieNode(letter,false);
}
}

Localizada Plataforma ActionScript Referência

Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.

O Adobe® Flex® ActionScript® 3.0 Language Reference e 6 línguas não é mais; o ActionScript® 3.0 Reference for Adobe® Flash® Professional e 16 línguas pouco a poeira, bem. Antes de entrar em pânico, Referências localizada ActionScript ter ido a rota do idioma Inglês- ActionScript® 3.0 Reference for the Adobe® Flash® Platform.

Anunciando! O Platform ASR, como nós carinhosamente chamamos, está agora disponível em todos os 16 linguagens da plataforma Flash: Inglês, Francês, Alemão, Japonês, Coreano, Chinês Simplificado, Tradicional chinesa, Espanhol, Italiano, Holandês, Português do Brasil, Sueco, Russo, Turco, Polonês e Tcheco!

Além do Inglês, comentando foi habilitada para Francês, Alemão, Japonês, Espanhol, Italiano, Holandês, Português do Brasil, e Chinês Simplificado.

Agora, se desenvolver em Flex, ColdFusion e Flash, em uma língua diferente do Inglês, digamos japonês, você será capaz de filtrar com esses produtos e começar as aulas como você precisa, tudo em um único documento!

Nem todos os produtos são suportados em todas as línguas, mas a beleza desta “todos os produtos sob o mesmo teto” cenário é que você não terá que ir e voltar entre a versão em Inglês apenas e uma versão localizada se você estiver, por exemplo, um desenvolvedor Flex e ColdFusion. Isso porque, para esses produtos não é suportado em um idioma específico, você vai encontrar o padrão Inglês no mesmo documento. Por exemplo, O francês é compatível com o Flash Pro, AIR, Flash Player, Flexionar, mas não LiveCycle ou ColdFusion. Assim, na ASR Plataforma francês, você vai encontrar Francês e Inglês juntos, dependendo de qual produtos ou runtimes filtrar em.

Os URLs para cada idioma, para a sua conveniência:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/es_ES/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/it_IT/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/pt_BR/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/sv_SE/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/nl_NL/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/ko_KR/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/zh_TW/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/cs_CZ/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/pl_PL/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/
http://help.adobe.com/tr_TR/FlashPlatform/reference/actionscript/3/

Espero que você esteja tão animado sobre isso como eu sou. Por favor, blog e tweet sobre isso, mas o mais importante, começar a usar o novo Platform ActionScript Reference em um dos idiomas acima! Deixe-me saber o que você pensa.

[Janice Campbell, Platform Localization]