• Home
  • Contato
  • Sobre mim
Blue Orange Green Pink Purple

Como alterar o caminho relativo (relative path) do SWF?

Posted in Dicas. on segunda-feira, julho 5th, 2010 by Eric Milfont
jul 05

Você já deve conhecer alguns parâmetros do embed do Flash mas existem alguns que bem úteis que podem passar despercebido, e são exatamente esses que podem lhe salvar horas quebrando a cabeça.

Um dos atributos opcionais que temos no embed do SWF é o base.

    base – Specifies the base directory or URL used to resolve relative path statements in ActionScript.


em tradução livre:

    base – Especifica o diretório base ou URL usada para achar o caminhos relativo no ActionScript.

Uma melhor definição:

Por padrão a URL base que o SWF retorna é o caminho do HTML que ele se encontra. Quando você colocar seu SWF em uma outra pasta (diferente do arquivo HTML) e carrega XML, imagens e até mesmo outros SWF. Você terá problemas.

É para isso que serve o atributo base.

Exemplificando:

Quando usamos caminhos relativos no código ActionScript 3, como este:
[/Exemplo_base/swf/AbreURLRelativa.swf]

botao_mc.addEventListener(MouseEvent.CLICK, function():void
{
	var url:String = "./Outro.swf";
	var request:URLRequest = new URLRequest(url);
	try {
		navigateToURL(request, '_blank');
	} catch (e:Error) {
		trace("Error occurred!");
	}
});

E no embed do seu Arquivo HTML você usa:

[/Exemplo_base/index.html]

<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″
width=”500″
height=”300″
codebase=”http://active.macromedia.com/flash7/cabs/swflash.cab#version=9,0,2,8″>
<param name=”movie” value=”/swf/AbreURLRelativa.swf”></param>
<param name=”play” value=”true”></param>
<embed src=”/swf/AbreURLRelativa.swf”
width=”500″ height=”300″ play=”true”
pluginspage=”http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash”>
</embed></object>

O clique do botão irá abrir a seguinte URL:
/Exemplo_base/Outro.swf

Se adicionarmos o parâmetro base com o valor “.” no embed como no exemplo abaixo:

<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″
width=”500″
height=”300″
codebase=”http://active.macromedia.com/flash7/cabs/swflash.cab#version=9,0,2,8″>
<param name=”base” value=”.”></param>
<param name=”movie” value=”/swf/AbreURLRelativa.swf”></param>
<param name=”play” value=”true”></param>
<embed base=”.” src=”/swf/AbreURLRelativa.swf”
width=”500″ height=”300″ play=”true”
pluginspage=”http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash”>
</embed></object>

O clique do botão dessa vez irá abrir a seguinte URL:
/Exemplo_base/swf/Outro.swf

O caminho relativo agora é o diretório onde se encontra o SWF e não o HTML.

Para aqueles que, como eu, utiliza o SWFObject para adicionar Flash no HTML, aqui vai um exemplo de como adiciona esse paramêtro no embed:

var swfobj = new SWFObject(value, “swf/AbreURLRelativa”, 500, 300, “9.0.28″, “#FFFFFF”);
swfobj.addParam(”base“, “.“);
swfobj.write(”swfDiv”);

Lembrando que o caminho relativo dos arquivos carregados será sempre o valor do base.

1 Comment

  1. Anderson Oliveira em outubro 15th, 2010

    Depois de muito, mas MUITO procurar na internet, finalmente encontrei a resposta…
    É incrível como uma coisa tão simples, tão boba de ser resolvida é tida como um bicho de sete cabeças por tanta gente.
    Muito obrigado pela ajuda!



Comente!

Eric Milfont

  • Traduza para (Translate to)
    Portuguese flagEnglish flagSpanish flag                                             
  • Siga-me no twitter
    • Lanchinho da tarde xD http://t.co/QbYc5EJM
    • Rolezinho no recreio c/ meu primo http://t.co/56pubz8m
    • Deu uma dor no coração quando despachei a prancha... espero que os agentes sejam gentis c/ meu bebe
    • Chegando a hora do happy hour do #adobecampbrasil
    • @EdsonLuiz demoro, mas chegou né xD
    • @joycelima é tenso... Jobs estava certo o tempo todo... haha
  • Tags
    Flash Portfólio html php e107 javascript Website .NET MSN css Dove youtube Dicas
  • Histórico
    • abril 2012
    • julho 2010
    • maio 2010
    • abril 2010
  • Busca






  • Home
  • Contato
  • Sobre mim

© Copyright Eric Milfont. All rights reserved.
Designed by FTL WordPress Themes by ImHosted Website Hosting

Back to Top