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.selectedItem. @ 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
-~----------~----~----~----~------~----~------~--~---