Boa noite pessoal,
Estou a tentar criar um carregador de .Swfs dinâmico,e que Invoque métodos
do Swf carregado.
Versão do Flex: 3.0;
Recebendo um XML desta forma:
<module label="DIÁRIOS">
<Funcionalidade label="Produtividade " data='ProdIndFlex.swf'
SearchData='SearchBoxProd'/>
<Funcionalidade label="Catalogação de Imagens"
data='ChangeDataProvider.swf' SearchData='SearchBoxCat'/>
<Funcionalidade label="Processos novos no '40' " data='SWFLoaded.swf'
SearchData='SearchBoxPr40'/ />
<Funcionalidade label="Processos no BACKLOG" />
</module >
<module label="SEMANAIS">
<Funcionalidade label="Pr1" data='accordionRepeater.swf' />
<Funcionalidade label="Pr310" />
<Funcionalidade label="ProXpto" />
</module >
*Populo um accordion.*
(O meu SWFLoader: )
<mx:VBox horizontalAlign="left" verticalAlign="top" width="100%" height="
100%" >
<mx:SWFLoader id="myLoader3" width="100%" height="100%" trustContent="true"
complete="onCompleteAppLoader(event); "/>
</mx:VBox>
*E ao carregar num label, vou carregar o swf no Swfloader desta forma:*
[*Bindable*]*public* *var* *_appLoaded*:Application;
*private* *function* activateLoader(event:Event):*void*{
myLoader3.source=*''*;
* //myloader3.source=event.currenttarget.selectedit...@data;
*
myLoader3.load(event.currenttarget.selectedit...@data);
myLoader3.scaleContent=*true*; *
*
}
*private* *function* onCompleteAppLoader(oEvent:Event):*void
*
{
* var* smAppLoaded:SystemManager =
SystemManager(oEvent.target.content); *//get a ref to the loaded app
*
smAppLoaded.addEventListener(FlexEvent.APPLICATION_COMPLETE,
onCurrentApplicationComplete);
}
*private* *function* onCurrentApplicationComplete(oEvent:Event):*void
*
{
_appLoaded = Application(oEvent.target.application);
* var* sUrl:String = _appLoaded.url;*
*
*
*
* *}
*Os SWFS gostaria que fossem externos. *
*O meu objectivo é invocar um método do SWF carregado.*
* Mas só consigo de fizer com o nome da classe :*
SWFLoaded(_appLoaded).doComponentSearch(searchArray);
---- ou ------
ChangeDataProvider(_appLoaded).doComponentSearch(searchArray);
Estes dão porque estão no mesmo projecto mas não dá para Swfs gerados por
outro projecto... Ou seja não há SWFS externos....* (duvida 2)*
*Já tentei:*
*var* c:Class =
myLoader3.loaderInfo.applicationDomain.getDefinition(className) *as* Class;
c(_appLoaded).doComponentSearch(searchArray);
*** *
*Tb já tentei:*
*var** remoteSWF:Object = myLoader3.content as** Object;*
*remoteSWF.doComponentSearch(searchArray); ** *
* *
*O que eu queria:*
* appLoaded.doComponentSearch(searchArray); **(duvida 1)*
* Alguem sabe o que fazer?*
**
Obrigado por terem lido este testamento (desculpem)
[[]]
João
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---