Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro Gabriel

[Resolvido] Carregar código-fonte PHP para ActionScript

Recommended Posts

Olá, pessoal!

 

Meu primeiro tópico aqui no iMasters e, gostaria muito que alguém pudesse me ajudar com uma dúvida muito cruel, que me levou até esse fórum para pedir ajuda a vocês! Eis o probleminha:

 

1º - Aqui na empresa onde trabalho temos um chat de atendimento on-line. (Acessem para dar uma olhada: www.alphasoftware.com.br) Isto é, o usuário clica no botãozinho do "Atendimento On-Line" e, abre uma janela, pedindo para informar o nome, o e-mail e o setor e, assim que clicar em OK, iniciamos a conversação.

 

Até aí tudo bem, nada de mais. A coisa começa a complicar agora:

 

2º - Temos planos de começar a desenvolver o nossos site com uma série de recursos em flash, isto é, animações grotescas, cheias de (d)efeitos especiais e tudo mais. Já estive fazendo uns testes com a logomarca e tal, até deu certo... Um pouco... (Endereço de teste: www.alphasoftware.com.br/index - preview.html)

 

Agora sim que começam a vir os problemas ultra-maximum-freddie-mercury-feelings-powered: 2vA1a.png?1313349760

 

3º - O sistema do atendimento on-line NÃO É desenvolvido por nós. É o mySuite, desenvolvido pela BraZip. Se analisarem o código fonte do site, vão ver que há um iframe naquele local que carrega este endereço:

http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php

Exatamente. É um site desenvolvido em php.

 

4º - Como eu não sei nada de php e, tentar entender esse negócio e tal, resolvi dar uma olhada no código fonte. Mas aí vem a surpresa: Enquanto on-line, não há nada no código fonte referente a um "se/senão" ou algo assim pra verificar se há atendente on-line ou não. Volto a lembrar que não entendo nada de php e, pra mim, é como se o código fonte desse endereço do iframe fosse "mutável"!

 

5º - Digo "mutável" pois, se vocês acessarem o site enquanto estiver atendente on-line, vão ver que irá carregar a imagem st_online.png. Do contrário, irá carregar a imagem st_offline.png, mas isso não está nesse código fonte da página em php! E é justamente isso aí que quero utilizar para fazer uma façanha que não consegui fazer até agora:

 

MOMENTO-MOR: Fazer uma animação .swf que LEIA o código fonte que o http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php retornar e procurar pela string das imagens, isto é, SE ele encontrar no meio do código-fonte a string "st_online.png", puxa o movieclip da animação de quando o atendimento está on-line. SE ele encontrar no meio do código-fonte a string "st_offline.png", puxa o movieclip da animação de quando não há atendente disponível.

DÚVIDA-CRUEL: Isso é possível, povo? Chuck Norris consegue?

 

Obrigado e, até a próxima!

 

P.S.: Toda a parte do iframe do botãozinho do atendimento on-line NÃO É desenvolvido pela minha empresa, ou seja, se estiverem pensando em me dizer para alterar o código dele para que possa fazer isso e aquilo, não há como! Agora, quanto ao domínio www.alphasoftware.com.br, se precisar fazer alguma alteração, posso providenciar!

 

P.P.S.: De preferência, em Action Script 3.0... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var urlLoader:URLLoader = new URLLoader(new URLRequest("http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php"));
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);

function urlLoaderCompleteHandler(e:Event):void
{
switch (urlLoader.data.toString().match(/src="(.*?)"/)[1]) {
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_offline.png":
		// sua ações caso online
		trace("offline");
	break;
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_online.png":
		// sua ações caso offline
		trace("online");
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var urlLoader:URLLoader = new URLLoader(new URLRequest("http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php"));
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);

function urlLoaderCompleteHandler(e:Event):void
{
switch (urlLoader.data.toString().match(/src="(.*?)"/)[1]) {
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_offline.png":
		// sua ações caso online
		trace("offline");
	break;
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_online.png":
		// sua ações caso offline
		trace("online");
}
}

 

Muito muito muito obrigado, Bruno! Vou testar aqui... Se der certo ou não, avisarei!

 

Bruno, aparentemente funcionou, mas parece que houve uma leve "troca" ali no on-line e no off-line, que só fui perceber quando tive os meus 30 segundos para testar, ou seja, não consegui testar muito bem!

 

Agora que há operadores on-line, o código está me retornando "on-line". Vou deixar upado no www.alphasoftware.com.br/teste-botao.html a animação que fiz para testar hoje à noite, momento o qual não há ninguém on-line, para ver se o flash vai me retornar OFF-LINE!

 

Resumindo: Funcionou, mas só terei certeza de que realmente funcionou amanhã de manhã ou hoje à noite. Eu volto depois pra dizer se deu certo. Segue a alteração no código:

 

// Importando as bibliotecas
import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
// A animação é composta de 3 frames:
// 1 = O frame onde vai este código, que verifica se há operadores on-line ou não;
// 2 = O frame que diz que HÁ operadores on-line.
// 3 = O frame que diz que NÃO HÁ operadores on-line.
// Sendo assim, pra animação não sair pulando pros outros frames, damos uma pausa na animação, neste mesmo frame.
stop();
// Segue o código do brunobispo:
var urlLoader:URLLoader = new URLLoader(new URLRequest("http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php"));
urlLoader.addEventListener(Event.COMPLETE,urlLoaderCompleteHandler);
function urlLoaderCompleteHandler(e:Event):void {
       switch (urlLoader.data.toString().match(/src="(.*?)"/)[1]) {
	// Se o código encontrar a expressão "st_online.png" no meio, vai para o frame 2, que diz que há operadores on-line.
               case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_online.png" :
                       this.gotoAndStop(2);
                       trace("online");
               break;
	// Do contrário, se o código encontrar a expressão "st_offline.png", vai para o frame 3, que diz que não há ninguém on-line.
               case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_offline.png" :
                       this.gotoAndStop(3);
                       trace("offline");
       }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var urlLoader:URLLoader = new URLLoader(new URLRequest("http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php"));
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);

function urlLoaderCompleteHandler(e:Event):void
{
switch (urlLoader.data.toString().match(/src="(.*?)"/)[1]) {
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_offline.png":
		// sua ações caso online
		trace("offline");
	break;
	case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_online.png":
		// sua ações caso offline
		trace("online");
}
}

 

Muito muito muito obrigado, Bruno! Vou testar aqui... Se der certo ou não, avisarei!

 

Bruno, aparentemente funcionou, mas parece que houve uma leve "troca" ali no on-line e no off-line, que só fui perceber quando tive os meus 30 segundos para testar, ou seja, não consegui testar muito bem!

 

Agora que há operadores on-line, o código está me retornando "on-line". Vou deixar upado no www.alphasoftware.com.br/teste-botao.html a animação que fiz para testar hoje à noite, momento o qual não há ninguém on-line, para ver se o flash vai me retornar OFF-LINE!

 

Resumindo: Funcionou, mas só terei certeza de que realmente funcionou amanhã de manhã ou hoje à noite. Eu volto depois pra dizer se deu certo. Segue a alteração no código:

 

// Importando as bibliotecas
import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
// A animação é composta de 3 frames:
// 1 = O frame onde vai este código, que verifica se há operadores on-line ou não;
// 2 = O frame que diz que HÁ operadores on-line.
// 3 = O frame que diz que NÃO HÁ operadores on-line.
// Sendo assim, pra animação não sair pulando pros outros frames, damos uma pausa na animação, neste mesmo frame.
stop();
// Segue o código do brunobispo:
var urlLoader:URLLoader = new URLLoader(new URLRequest("http://alphasoftware.mysuite.com.br/empresas/alh/verifica.php"));
urlLoader.addEventListener(Event.COMPLETE,urlLoaderCompleteHandler);
function urlLoaderCompleteHandler(e:Event):void {
       switch (urlLoader.data.toString().match(/src="(.*?)"/)[1]) {
	// Se o código encontrar a expressão "st_online.png" no meio, vai para o frame 2, que diz que há operadores on-line.
               case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_online.png" :
                       this.gotoAndStop(2);
                       trace("online");
               break;
	// Do contrário, se o código encontrar a expressão "st_offline.png", vai para o frame 3, que diz que não há ninguém on-line.
               case "http://alphasoftware.mysuite.com.br/empresas/alh/imagens/st_offline.png" :
                       this.gotoAndStop(3);
                       trace("offline");
       }
}

 

Deu certo, Bruno. O código funcionou perfeitamente! Muito obrigado, te devo uma coca-cola.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.