Jump to content


Photo

As3 - Problemas Com Carregamento De Swf


  • Faça o login para participar
2 replies to this topic

#1 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 01/04/2009, 16:32

Olá.

Preciso criar um flash que incluirá dentro dele um SWF qualquer, passado por parâmetro.
Consegui fazer isto, utilizando a classe Loader e afins.

Problema é quando insiro o SWF dentro do meu flash. Tem alguns que tem por exemplo:
fscommand("allowscale", "false");

Isto restringe o objeto ficar escalável no meu flash quando insiro-o. O chato que eu abro o mesmo SWF num navegador, e ele ignora essa propriedade, abre o SWF ampliado de acordo com o tamanhop da tela (sem html, acessando diretamente o arquivo).

Tem uns SWF que tem um stage absurdamente grande e o SWF fica centralizado, o que acontece: o conteúdo do SWF fica fora da tela (X/Y).

Queria saber como ignorar o X/Y do SWF ignorado e fazer ele ficar com a dimensão do meu flash.

Aqui vai uma img de exemplo

Posted Image

Meu código:
// Importar Classes
import flash.display.Loader;
import flash.net.URLRequest;
import com.jogos.SWFBridgeAS3;


//Habilitar acesso ao dominio
Security.allowDomain("www.gojogos.com");

//Caputrar Flashvars
var parameters:Object = LoaderInfo(this.root.loaderInfo).parameters;

//Atribur URL
var url:String= parameters.url || "http://site.com/my_flash.swf";


//Instanciar loader
var loader:Loader= new Loader();

//Criar Sprive (MovieClip)
var container:MovieClip = new MovieClip();
this.addChild(container);

//Adicionando eventos
loader.contentLoaderInfo.addEventListener(Event.OPEN,loadinit);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loading);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completes);
//Carregar SWF
loader.load(new URLRequest(url));

function loadinit(event:Event){
//	trace("::::Started::::");

}
function loading(event:ProgressEvent) {
	trace(Math.ceil((event.bytesLoaded/event.bytesTotal)*100));

}

function completes(event:Event){
	container.addChild(event.target.content);

	trace(event.target.width + "x" + event.target.height); //Dimensoes originais do conteudo
	trace(loader.width + "x" + loader.height); //Dimensões do Stage (absurda)



}

Agradeço quem puder a judar.

[]'s

Edição feita por: savior, 05/04/2009, 22:46.

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#2 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 03/04/2009, 12:15

Nâo entendi exatamente o problema.

Se é porque o flash não fica 100% na página, ou se o swf externo é carregado em um tamanho inferior ao real. Pode postar um link ? O código de carregamento não está errado e não tem a ver com isso eu acho.

Talvez o seu problema esteja na forma de alinhar o stage e no html que joga o flash na página. Veja se você consegue mais detalhes ou subir isso em um host. Uma outra coisa que você pode fazer é o seguinte: dê uma pesquisada no help do flash nas classes de Stage - flash.display.Stage, flash.display.StageAlign e flash.display.StaqueScaleMode.

Abraços.

pp

#3 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 06/04/2009, 20:33

Obrigado pela resposta.

O problema que eu quero que o meu flash carregue o outro flash, mas somente o movieclip e não o stage todo :S

Tipo o stage é 2024.5x1692.4
E eu quero jogar somente no meu flash os 600x350 (que é o tamanho do movieclip dentro do stage)

O Firefox por exemplo quando abro um swf direto nele, ele ignora o fscommand, veja esse arquivo aqui: http://tr.im/ilDI

É exatamente o que o Firefox faz o que eu preciso.

Espero que tenha entendindo agora :P

[]'s!

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq