João,

Sei bem que não posso simplesmente mudar de ANE para SWC. Na realidade uma
ANE é um SWC + Código Nativo e mudar para SWC, irá dar uma interpretação
diferente do ficheiro mas neste caso foi para fim de testes para perceber
se um SWC seria embebido correctamente e expor as classes AS3 (uma ANE é
AS3 + código nativo).

A conclusão que cheguei (e como não tinha tido a necessidade anteriormente
não sabia), é que só podemos usar ANEs em projectos do tipo Flex Desktop e
Flex Mobile (por agora apenas Android) e não em libraries e um worker
funciona (mais ou menos) como uma library que é executada em paralelo e que
pode partilhar dados (através de shared properties) e comunicar através de
um canal para notificações.

Talvez possa não se muito útil ter suporte a executar código de uma ANE em
libraries mas faz todo o sentido em worker, no sentido que para o
programador um worker é um pedaço da aplicação principal a executar em
paralelo (como threads).

Vou ter de recorrer a código nativo para fazer o que queria com este
segundo tipo de worker :P

Tudo se resolve :)


Cumps,
Hugo.






No dia 21 de Outubro de 2013 às 15:37, João Fernandes <
[email protected]> escreveu:

> Hugo, não podes mudar de ane para swc pois nesse caso o compilar ignora
> tudo o que seja a native code como já podeste reparar. Se o código parece
> não estar disponível no worker compilado, valida o seguinte:
> 1) tens alguma referência no worker (var x:YourClassType) das tuas classes
> existentes no ANE.
> 2) valida se não estas a tentar usar uma API não disponível num worker.
>
>
>  2013/10/20 Hugo Ferreira <[email protected]>
>
>> Alterei a extensão da minha ANE para SWC e o binário do worker
>> incrementou ligeiramente o seu tamanho (agora já tem incluído o SWC) e a
>> parte do código AS da ANE já correu naturalmente no entanto depois obtive o
>> erro:
>>
>> Error: Error #3731: This feature is not available within this context.
>>
>> at flash.external::ExtensionContext$/_createExtensionContext()
>>
>> at flash.external::ExtensionContext$/createExtensionContext()
>>
>> Isto naturalmente porque o código nativo não pode ser executado. ANEs só
>> em Aplicações Desktop/Android/futuramente iOS e não em libraries AS como é
>> um worker :(
>>
>>
>> No dia 20 de Outubro de 2013 às 15:04, Hugo Ferreira <
>> [email protected]> escreveu:
>>
>> Boa tarde pessoal,
>>>
>>>
>>> Começei a usar workers em ambiente Android e as necessidades são de 2
>>> workers.
>>>
>>> O primeiro é activado, executa o seu código em background (com sqlite e
>>> pouco mais e sem nenhuma referência à instância base, obtendo assim o
>>> ficheiro mais pequeno possível), informa a instância principal, esta lê os
>>> dados processados, encerra o worker e inicia outro worker de outro tipo.
>>> Até aqui tudo bem. Funciona 5 *.
>>>
>>> O segundo worker faz uso de uma ANE que desenvolvi e é aqui que ocorre o
>>> problema. Como sabem, o swf compilado para o worker, contem (e convém que
>>> seja) apenas o seu próprio código (no primeiro caso 6 KB e no segundo caso
>>> menos de 200 KB) e quando referenciamos código proveniente de uma ANE, em
>>> compile-time não temos problemas como é natural pois o ambiente de
>>> desenvolvimento não sabe que aquele código vai correr no worker mas em
>>> runtime vão ter problemas, uma vez que a classe está contido na ANE e não
>>> no SWF do worker.
>>>
>>> Já fiz de tudo para tentar que o conteúdo da ANE estive-se disponível no
>>> SWF do worker mas em vão, até tentar carregar a ANE (que na realidade é um
>>> SWC) em runtime e a partir dai instanciar as classes necessárias.
>>>
>>> Na NET não encontrei nada e isto como é algo muito recente, ainda não
>>> existem muitos programadores a usarem :(
>>>
>>>
>>> Alguma dica ?
>>>
>>
>>  --
>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
>> Grupos do Google.
>>
>> Para anular a subscrição deste grupo e parar de receber emails deste
>> grupo, envie um email para [email protected].
>> Para publicar uma mensagem neste grupo, envie um e-mail para
>> [email protected].
>> Visite este grupo em http://groups.google.com/group/riapt.
>> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>>
>
>
>
> --
>
> João Fernandes
>
> --
> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
> Grupos do Google.
>
> Para anular a subscrição deste grupo e parar de receber emails deste
> grupo, envie um email para [email protected].
> Para publicar uma mensagem neste grupo, envie um e-mail para
> [email protected].
> Visite este grupo em http://groups.google.com/group/riapt.
> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para anular a subscrição deste grupo e parar de receber emails deste grupo, 
envie um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Visite este grupo em http://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/groups/opt_out.

Responder a