..:: MX Studio Fóruns ::..: Ajuda: AS3 + JavaScript - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ajuda: AS3 + JavaScript Pequeno problema de incompatibilidade de conhecimento

#1 User is offline   Kuen 

  • Group: Membros
  • Posts: 7
  • Joined: 02-May 05

Posted 08 July 2008 - 06:32 PM

Buenas pessoal!

Estou com o seguinte problema:

Tenho um javascript que insere o flash na página (SwfObject), nele, passo uma variável para o flash chamada pagina.
Ex.:

so.addVariable('pagina', page['pagina']);


Porém, não sei como puxar essa var para um campo de texto dentro do flash em AS3.
No AS2 era somente fazer:

pagina_txt = pagina;


Mas não há santo que faça o AS3 puxar essa variável.

OBS.: O sistema obrigatóriamente deve ficar em AS3, pois é uma galeria de fotos (código aberto / tutorial) que só tinha em AS3.

Conheço um pouco de programação, mas não tenho intimidade nenhuma com AS3 e Java, já que muita gente diz que é meio parecido!
0

#2 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 08 July 2008 - 09:00 PM

Veja se ajuda:

CÓDIGO
var arquivo:String = LoaderInfo(this.root.loaderInfo).parameters.pagina;
pagina_txt = arquivo;


[]s
0

#3 User is offline   Kuen 

  • Group: Membros
  • Posts: 7
  • Joined: 02-May 05

Posted 08 July 2008 - 09:44 PM

Lá vai meu código!! Não sei pq não funcionou!

CÓDIGO
var arquivo:String = LoaderInfo(this.root.loaderInfo).parameters.pagina;
pagina_txt = arquivo;

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var total:Number = undefined;
var dadosXML:XML = new XML();
var loader:Loader = new Loader();
var fotoAtual:Number = 0;
var carregaXML:URLLoader = new URLLoader();
carregaXML.addEventListener(Event.COMPLETE, monta);
carregaXML.load(new URLRequest("teste.xml"));
function monta(event:Event) {
    dadosXML = new XML(event.target.data);
    total = dadosXML.foto.length();
    mostraImagem(0);
}
function mostraImagem(atual:Number):void {
    loader.unload();
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
    loader.load(new URLRequest(dadosXML.foto.imagem[atual]));
    holder.addChild(loader);
    holder.alpha = 0;
    prox.removeEventListener(MouseEvent.CLICK, proxPress);
    ant.removeEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = false;
    ant.enabled = false;
}
var aProx = prox.alpha;
var aSProx = setaProx.alpha;
function loadProgress(Event:ProgressEvent) {
    var carregado:Number = Event.bytesLoaded;
    var tamanho:Number = Event.bytesTotal;
    preloader.scaleX = carregado/tamanho;
    if (fotoAtual == (total-2)) {
        prox.enabled = false;
        prox.alpha = 0;
        setaProx.alpha = 0;
        prox.buttonMode = false;
    } else {
        prox.enabled = true;
        prox.alpha = aProx;
        setaProx.alpha = aSProx;
        prox.buttonMode = true;
    }
    if (fotoAtual == 0) {
        ant.enabled = false;
        ant.alpha = 0;
        setaAnt.alpha = 0;
        ant.buttonMode = false;
    } else {
        ant.enabled = true;
        ant.alpha = aProx;
        setaAnt.alpha = aSProx;
        ant.buttonMode = true;
    }
}
function loadComplete(event:Event) {
    var tww:Tween = new Tween(borda, "width", Back.easeOut, borda.width, holder.width+16, 1, true);
    var twh:Tween = new Tween(borda, "height", Back.easeOut, borda.height, holder.height+16, 1, true);
    var twhx:Tween = new Tween(holder, "x", Back.easeOut, holder.x, borda.x-holder.width/2, 1, true);
    var twhy:Tween = new Tween(holder, "y", Back.easeOut, holder.y, borda.y-holder.height/2, 1, true);
    var twant:Tween = new Tween(ant, "x", Back.easeOut, ant.x, (borda.x-holder.width/2)+10, 1, true);
    var hant:Tween = new Tween(ant, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var twpro:Tween = new Tween(prox, "x", Back.easeOut, prox.x, (borda.x+holder.width/2)-10, 1, true);
    var hpro:Tween = new Tween(prox, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var xSetA:Tween = new Tween(setaAnt, "x", Back.easeOut, setaAnt.x, (borda.x-holder.width/2)+10, 1, true);
    var xSetP:Tween = new Tween(setaProx, "x", Back.easeOut, setaProx.x, (borda.x+holder.width/2)-10, 1, true);
    twhx.addEventListener(TweenEvent.MOTION_FINISH, termina);
}
function termina(Event:TweenEvent) {
    preloader.scaleX = 0;
    var twha:Tween = new Tween(holder, "alpha", Regular.easeOut, 0, 1, 1, true);
    twha.addEventListener(TweenEvent.MOTION_FINISH, alphaTerminou);
}
function alphaTerminou(Event:TweenEvent) {
    prox.addEventListener(MouseEvent.CLICK, proxPress);
    ant.addEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = true;
    ant.enabled = true;
}
prox.addEventListener(MouseEvent.CLICK, proxPress);
ant.addEventListener(MouseEvent.CLICK,antPress);
prox.buttonMode = true;
ant.buttonMode = true;

function proxPress(event:MouseEvent):void {
    if (fotoAtual < (total-2)) {
        fotoAtual++;
        mostraImagem(fotoAtual);
    }
}
function antPress(event:MouseEvent):void {
    if (fotoAtual > 0) {
        fotoAtual--;
        mostraImagem(fotoAtual);
    }
}

0

#4 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 08 July 2008 - 09:59 PM

Tinha esquecido de perguntar, o que seria esse pagina_txt, algum campo de texto?

[]s
0

#5 User is offline   Kuen 

  • Group: Membros
  • Posts: 7
  • Joined: 02-May 05

Posted 08 July 2008 - 10:20 PM

QUOTE(Natan @ 8/7/2008 20:07:45) <{POST_SNAPBACK}>
Tinha esquecido de perguntar, o que seria esse pagina_txt, algum campo de texto?

[]s


Opa! Agora queria só para ver se está carregando, dai seria num campo de texto!
Mas o que quero fazer é puxar essa var pra carrega um xml específico!

exemplo:
CÓDIGO
carregaXML.load(new URLRequest(pagina));


0

#6 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 08 July 2008 - 10:27 PM

Experimente isso:

CÓDIGO
var arquivo:String = LoaderInfo(this.root.loaderInfo).parameters.pagina;

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var total:Number = undefined;
var dadosXML:XML = new XML();
var loader:Loader = new Loader();
var fotoAtual:Number = 0;
var carregaXML:URLLoader = new URLLoader();
carregaXML.addEventListener(Event.COMPLETE, monta);
carregaXML.load(new URLRequest(arquivo));
function monta(event:Event) {
    dadosXML = new XML(event.target.data);
    total = dadosXML.foto.length();
    mostraImagem(0);
}
function mostraImagem(atual:Number):void {
    loader.unload();
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
    loader.load(new URLRequest(dadosXML.foto.imagem[atual]));
    holder.addChild(loader);
    holder.alpha = 0;
    prox.removeEventListener(MouseEvent.CLICK, proxPress);
    ant.removeEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = false;
    ant.enabled = false;
}
var aProx = prox.alpha;
var aSProx = setaProx.alpha;
function loadProgress(Event:ProgressEvent) {
    var carregado:Number = Event.bytesLoaded;
    var tamanho:Number = Event.bytesTotal;
    preloader.scaleX = carregado/tamanho;
    if (fotoAtual == (total-2)) {
        prox.enabled = false;
        prox.alpha = 0;
        setaProx.alpha = 0;
        prox.buttonMode = false;
    } else {
        prox.enabled = true;
        prox.alpha = aProx;
        setaProx.alpha = aSProx;
        prox.buttonMode = true;
    }
    if (fotoAtual == 0) {
        ant.enabled = false;
        ant.alpha = 0;
        setaAnt.alpha = 0;
        ant.buttonMode = false;
    } else {
        ant.enabled = true;
        ant.alpha = aProx;
        setaAnt.alpha = aSProx;
        ant.buttonMode = true;
    }
}
function loadComplete(event:Event) {
    var tww:Tween = new Tween(borda, "width", Back.easeOut, borda.width, holder.width+16, 1, true);
    var twh:Tween = new Tween(borda, "height", Back.easeOut, borda.height, holder.height+16, 1, true);
    var twhx:Tween = new Tween(holder, "x", Back.easeOut, holder.x, borda.x-holder.width/2, 1, true);
    var twhy:Tween = new Tween(holder, "y", Back.easeOut, holder.y, borda.y-holder.height/2, 1, true);
    var twant:Tween = new Tween(ant, "x", Back.easeOut, ant.x, (borda.x-holder.width/2)+10, 1, true);
    var hant:Tween = new Tween(ant, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var twpro:Tween = new Tween(prox, "x", Back.easeOut, prox.x, (borda.x+holder.width/2)-10, 1, true);
    var hpro:Tween = new Tween(prox, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var xSetA:Tween = new Tween(setaAnt, "x", Back.easeOut, setaAnt.x, (borda.x-holder.width/2)+10, 1, true);
    var xSetP:Tween = new Tween(setaProx, "x", Back.easeOut, setaProx.x, (borda.x+holder.width/2)-10, 1, true);
    twhx.addEventListener(TweenEvent.MOTION_FINISH, termina);
}
function termina(Event:TweenEvent) {
    preloader.scaleX = 0;
    var twha:Tween = new Tween(holder, "alpha", Regular.easeOut, 0, 1, 1, true);
    twha.addEventListener(TweenEvent.MOTION_FINISH, alphaTerminou);
}
function alphaTerminou(Event:TweenEvent) {
    prox.addEventListener(MouseEvent.CLICK, proxPress);
    ant.addEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = true;
    ant.enabled = true;
}
prox.addEventListener(MouseEvent.CLICK, proxPress);
ant.addEventListener(MouseEvent.CLICK,antPress);
prox.buttonMode = true;
ant.buttonMode = true;

function proxPress(event:MouseEvent):void {
    if (fotoAtual < (total-2)) {
        fotoAtual++;
        mostraImagem(fotoAtual);
    }
}
function antPress(event:MouseEvent):void {
    if (fotoAtual > 0) {
        fotoAtual--;
        mostraImagem(fotoAtual);
    }
}


No seu HTML você usa:

CÓDIGO
so.addVariable('pagina', 'arquivo.xml');


[]s
0

#7 User is offline   Kuen 

  • Group: Membros
  • Posts: 7
  • Joined: 02-May 05

Posted 08 July 2008 - 10:53 PM

Opa! Não funfou, simplesmente não carregou o swf!
0

#8 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 09 July 2008 - 10:36 PM

Vamos fazer um teste, crie um campo de texto dinamico com instancia de texto. Deixe seu ActionScript assim:

CÓDIGO
var arquivo:String = LoaderInfo(this.root.loaderInfo).parameters.pagina;
texto.text = arquivo;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var total:Number = undefined;
var dadosXML:XML = new XML();
var loader:Loader = new Loader();
var fotoAtual:Number = 0;
var carregaXML:URLLoader = new URLLoader();
carregaXML.addEventListener(Event.COMPLETE, monta);
carregaXML.load(new URLRequest(arquivo));
function monta(event:Event) {
    dadosXML = new XML(event.target.data);
    total = dadosXML.foto.length();
    mostraImagem(0);
}
function mostraImagem(atual:Number):void {
    loader.unload();
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
    loader.load(new URLRequest(dadosXML.foto.imagem[atual]));
    holder.addChild(loader);
    holder.alpha = 0;
    prox.removeEventListener(MouseEvent.CLICK, proxPress);
    ant.removeEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = false;
    ant.enabled = false;
}
var aProx = prox.alpha;
var aSProx = setaProx.alpha;
function loadProgress(Event:ProgressEvent) {
    var carregado:Number = Event.bytesLoaded;
    var tamanho:Number = Event.bytesTotal;
    preloader.scaleX = carregado/tamanho;
    if (fotoAtual == (total-2)) {
        prox.enabled = false;
        prox.alpha = 0;
        setaProx.alpha = 0;
        prox.buttonMode = false;
    } else {
        prox.enabled = true;
        prox.alpha = aProx;
        setaProx.alpha = aSProx;
        prox.buttonMode = true;
    }
    if (fotoAtual == 0) {
        ant.enabled = false;
        ant.alpha = 0;
        setaAnt.alpha = 0;
        ant.buttonMode = false;
    } else {
        ant.enabled = true;
        ant.alpha = aProx;
        setaAnt.alpha = aSProx;
        ant.buttonMode = true;
    }
}
function loadComplete(event:Event) {
    var tww:Tween = new Tween(borda, "width", Back.easeOut, borda.width, holder.width+16, 1, true);
    var twh:Tween = new Tween(borda, "height", Back.easeOut, borda.height, holder.height+16, 1, true);
    var twhx:Tween = new Tween(holder, "x", Back.easeOut, holder.x, borda.x-holder.width/2, 1, true);
    var twhy:Tween = new Tween(holder, "y", Back.easeOut, holder.y, borda.y-holder.height/2, 1, true);
    var twant:Tween = new Tween(ant, "x", Back.easeOut, ant.x, (borda.x-holder.width/2)+10, 1, true);
    var hant:Tween = new Tween(ant, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var twpro:Tween = new Tween(prox, "x", Back.easeOut, prox.x, (borda.x+holder.width/2)-10, 1, true);
    var hpro:Tween = new Tween(prox, "height", Back.easeOut, borda.height, holder.height, 1, true);
    var xSetA:Tween = new Tween(setaAnt, "x", Back.easeOut, setaAnt.x, (borda.x-holder.width/2)+10, 1, true);
    var xSetP:Tween = new Tween(setaProx, "x", Back.easeOut, setaProx.x, (borda.x+holder.width/2)-10, 1, true);
    twhx.addEventListener(TweenEvent.MOTION_FINISH, termina);
}
function termina(Event:TweenEvent) {
    preloader.scaleX = 0;
    var twha:Tween = new Tween(holder, "alpha", Regular.easeOut, 0, 1, 1, true);
    twha.addEventListener(TweenEvent.MOTION_FINISH, alphaTerminou);
}
function alphaTerminou(Event:TweenEvent) {
    prox.addEventListener(MouseEvent.CLICK, proxPress);
    ant.addEventListener(MouseEvent.CLICK, antPress);
    prox.enabled = true;
    ant.enabled = true;
}
prox.addEventListener(MouseEvent.CLICK, proxPress);
ant.addEventListener(MouseEvent.CLICK,antPress);
prox.buttonMode = true;
ant.buttonMode = true;

function proxPress(event:MouseEvent):void {
    if (fotoAtual < (total-2)) {
        fotoAtual++;
        mostraImagem(fotoAtual);
    }
}
function antPress(event:MouseEvent):void {
    if (fotoAtual > 0) {
        fotoAtual--;
        mostraImagem(fotoAtual);
    }
}


Teste seu arquivo abrindo ele pelo HTML e veja se aparece corretamente o nome do arquivo XML que você colocou no HTML.

[]s
0

#9 User is offline   Kuen 

  • Group: Membros
  • Posts: 7
  • Joined: 02-May 05

Posted 10 July 2008 - 01:36 PM

QUOTE(Natan @ 9/7/2008 21:07:24) <{POST_SNAPBACK}>
Vamos fazer um teste, crie um campo de texto dinamico com instancia de texto. Deixe seu ActionScript assim:

Teste seu arquivo abrindo ele pelo HTML e veja se aparece corretamente o nome do arquivo XML que você colocou no HTML.

[]s


Cara, só tenho uma coisa a dizer:
SHOW DE BOLA!!

Cara, muito obrigado! Meu cliente estava em cima de mim fazia duas semanas!!

Muito obrigado!

Não tem esquema de reputação aqui no Fórum?

VC é 10!!

Valeu Natan!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)