Vou repetir aqui meu reply lá no flexbrasil, pra quem só acompanha
esta lista...

Bruno,

Esta afirmação é uma "lenda urbana". As duas opções são completamente
independentes and cumprem funções distintas. O objetivo de uma certa
maneira é o mesmo nos dois casos: diminuir o tamanho do teu .swf.

O uso da opção RSL para o framework do Flex faz com que todas a
classes do framework sejam eliminadas do teu .swf (daí a redução do
tamanho). Para isto o framework é carregado como um .swf separado (na
verdade um .swz). Este .swf do framewoek é "assinado e certificado"
pela Adobe e fica nocache do Flash Player (não do browser). Desta
maneira é só será carregado na primeira vez que alguém referencie
este .swz (na tua aplicação ou de qqr outra no mundo que use a mesma
versão do framework).

O uso de módulos por outro lado está sob seu contrôle e objetiva
particionar uma aplicação grande, de modo que sejam carregadas somente
funcionalidades (módulos) em uso. Por exemplo, se vc tem uma aplicação
com várias funções distintas, ativadas através de um menu, que seja.
Você pode colocar cada uma destas funções em módulos separados, que
são carregados somente quando o usuário seleciona a opção no menu.
Assim, serão carregadas somente os módulos que o usuário acionar
explicitamente.

O problema mencionado (falha de coerção, ou algo assim) pode ocorrer
no caso da utilização de módulos por uma, digamos assim, "falha" no
linker do Flex. Se vc referencia uma classe somente dentro de um
módulo, por vezes, o Flex não linka esta classe à tua aplicação
principal. Daí quando o módulo tenta usar a classe, ele não existe na
aplicação. Pelo desenho do Flash Player, a definição de todas as
classes devem estar presentes na aplicação principal. Um caso clássico
desta situação são os "managers" do framework, PopupManager,
DragManager, e outros singletons.

A saída para este problema é forçar uma referencia à estes managers na
tua aplicação principal, mais ou menos assim:
                import mx.managers.PopUpManager;
                import mx.managers.DragManager;
                private var popUpManager:PopUpManager;
                private var dragManager:DragManager;

Basta incluir este código na tua aplicação principal para forçar o
linker do Flex a incluir aquelas classes no teu .swf principal. Assim
elas estarão disponíveis a qualquer módulo.


hth
julio



On 20 mar, 14:42, bruno bg <bruno...@ig.com.br> wrote:
> 1)
> eu trabalho com MODULOS e no início tb deu um erro (não lembro qual
> mensagem) que os amigos (Luis Carlos Quinhone, Pierre blitzkow, Eduardo
> Kraus ) já comentaram.  *Falha de coerção de tipo: não é possível converter
> mx.managers::DragManagerImpl*
>
> *************************************************************************** 
> *****
> eu adicionei no meu ModuleLoader as linhas
>             import mx.managers.IDragManager;
>             private var iDragManager:IDragManager;
>             import mx.managers.HistoryManager;
>             public static var his:HistoryManager;
>
> não deu mais erro.
>
> 2)
> de acordo com alguns emails anteriores dos amigos (Luis Carlos Quinhone, 
> Pierre
> blitzkow, Eduardo Kraus ). para quem usa MODULOS
> vi que é necessário mudar em
> Project > Properties > Flex Build Path > Library Path  - MERGED INTO CODE
> trocar para RLS.
> bom eu fiz essa mudança e verifiquei que foi criado um arquivo chamado .
> framework_3.3.0.4852.swf.
> o total de tamanho da pasta BIN não mudou em nada. !!!
>
> bom ...
>
> 3)
> li no linkhttp://blog.areacriacoes.com.br/2008/4/8/m-dulos-em-flex-3,  que
> modulo e RSL são coisas diferentes.
> então.
> alguém poderia explicar melhor , seja com um link de blog, dos docs ou
> qualquer coisa. É puramente dúvida.
>
> bruno bg

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

To unsubscribe from this group, send email to 
flexdev+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Responder a