Flex Mania 2009 – A conferência brasileira para plataforma Flash/Flex
Posted by Andrews on junho 27th, 200906, 07 de julho 2009, acontece a conferência on-line para desenvolvedores e designers da plataforma Flash Player.
Aplicando filtros com caurina FilterShortcuts
Posted by Andrews on abril 14th, 2009Continuando os posts sobre as classes caurina vou mostrar como trabalhar com os filtros DropShadow, Glow e Blur.
Não vou me ater muito na criação do arquivo para não ficar extenso o post, assim entendo que tu saiba trabalhar com flash.
Neste caso estou aplicando os filtros através de uma function, onde verificamos qual é o filtro solicitado pelo botão, após aplica-se o filtro solicitado.
// IMPORTAMOS A CLASSE Tweener e FilterShortcuts import caurina.transitions.Tweener; import caurina.transitions.properties.FilterShortcuts; // INICIANDO A CLASSE FilterShortcuts FilterShortcuts.init(); /** * FUNCTION aplicarFiltro * @param MouseEvent */ function aplicarFiltro(event:MouseEvent):void { var target:String = event.target.name; switch(target) { case 'shadow_mc': Tweener.addTween(container_mc, {_DropShadow_blurX:30, _DropShadow_blurY:30, time:.5, transition:'linear'}); break; case 'glow_mc': Tweener.addTween(container_mc, {_Glow_blurX:30, _Glow_blurY:30, time:.5, transition:'linear'}); break; case 'blur_mc': Tweener.addTween(container_mc, {_Blur_blurX:30, _Blur_blurY:30, time:.5, transition:'linear'}); break; } } /** * FUNCTION removerFiltro * @param MouseEvent */ function removerFiltro(event:MouseEvent):void { var target:String = event.target.name; switch(target) { case 'shadow_mc': Tweener.addTween(container_mc, {_DropShadow_blurX:0, _DropShadow_blurY:0, time:.5, transition:'linear'}); break; case 'glow_mc': Tweener.addTween(container_mc, {_Glow_blurX:0, _Glow_blurY:0, time:.5, transition:'linear'}); break; case 'blur_mc': Tweener.addTween(container_mc, {_Blur_blurX:0, _Blur_blurY:0, time:.5, transition:'linear'}); break; } } // EVENTOS shadow_mc.addEventListener(MouseEvent.MOUSE_OVER, aplicarFiltro); shadow_mc.addEventListener(MouseEvent.MOUSE_OUT, removerFiltro); glow_mc.addEventListener(MouseEvent.MOUSE_OVER, aplicarFiltro); glow_mc.addEventListener(MouseEvent.MOUSE_OUT, removerFiltro); blur_mc.addEventListener(MouseEvent.MOUSE_OVER, aplicarFiltro); blur_mc.addEventListener(MouseEvent.MOUSE_OUT, removerFiltro);
Repare que no filtro Glow você precisa alterar a cor, pois ele utiliza uma cor padrão para o filtro. Neste caso pode-se estar aplicando também a propriedade _Glow_color, que é o responsável pela manipulação da cor do Glow.
Tweener.addTween(container_mc, {_Glow_blurX:30, _Glow_blurY:30, _Glow_color:0x333333, time:.5, transition:'linear'});
As classes caurina são uma mão na roda para quem não curte usar a timelime e manipular os objetos no palco, assim facilitando e muito nossa vida. Lembrando que devemos essa ao Zeh por te-la disponibilizado a comunidade.
Clique aqui e veja como ficou o exemplo.
Criando um perseguidor de mouse
Posted by Andrews on abril 2nd, 2009Uma dica bem simples para causar um tchan a mais ao se passar o mouse sobre objetos em uma aplicação flash é criar um perseguidor ou como queiram chamar.
Pois bem… primeiro crie então um movieclip no palco e instancie-o com o nome de botao_mc, após ter o botão criado, criaremos nosso perseguidor.
Desenho um circulo, retângulo ou qualquer outra coisa no palco, e transforme-o em um movieclip setando seu nome como perseguidor_mc, também será necessário setar uma identificação para o Linkage, pois iremos chamar ele da biblioteca. Para fazer isto clique em Advanced, e após marque a opção Export for ActionScript. Veja o exemplo abaixo.

Após ter criado o perseguidor, delete-o do palco, deixando apenas o botão.
Crie uma nova layer e escreva a action que será responsável por atachar e movimentar o persseguidor do mouse.
// IMPORTANDO A CLASSE CAURINA TWEENER import caurina.transitions.Tweener; // EVENTO OVER botao_mc.onRollOver = function() { // ATACHA O PERSEGUIDOR NA POSICAO X E Y DO MOUSE attachMovie('perseguidor_mc', 'perseguidor_mc', 1, {_x:_xmouse, _y:_ymouse}); // AO MOVER O MOUSE, MOVE TAMBEM O PERSEGUIDOR onMouseMove = function() { // APLICANDO TWEENER PARA SUAVIZAR O MOVIMENTO DO PERSEGUIDOR Tweener.addTween(perseguidor_mc, {_x:_xmouse+9, _y:_ymouse+20, time:1, transition:'easeOutExpo'}); } } // EVENTO OUT botao_mc.onRollOut = function() { // REMOVE O PERSEGUIDOR removeMovieClip(perseguidor_mc); // DELETA A FUNCAO MOUSE MOVE delete onMouseMove; }
Esta feito nosso perseguidor, supimpa não!
clique aqui e veja como ficou o exemplo
Adobe abrirá código de protocolo do Flash
Posted by Andrews on fevereiro 25th, 2009O objetivo é fornecer aos desenvolvedores e companhias acesso aberto e gratuito ao Protocolo de Mensagens em Tempo Real.
A Adobe está planejando publicar as especificações do Protocolo de Mensagens em Tempo Real (RTMP, na sigla em inglês), tecnologia utilizada na transmissão em alta velocidade de dados, áudio e vídeo entre plataformas Flash.
O objetivo seria fornecer aos desenvolvedores e companhias acesso aberto e gratuito ao RTMP. A ação, que faz parte do programa Open Screen, possibilitaria a experiência de desenvolvimento de aplicações com múltiplas telas montadas em ambiente runtime, tanto para os navegadores web, como outras aplicações de computação pessoal e dispositivos móveis.
A especificação RTMP deve estar disponível no Adobe Developer Connection já no primeiro semestre de 2009. De acordo com o CTO da Adobe, Kevin Lynch, essa abertura vai acelerar a adoção da plataforma Flash pelos desenvolvedores, o que deve dar início a uma nova geração de aplicativos baseados na web.
O Protocolo de Mensagens em Tempo Real melhorou o processo de transmissão do chamado conteúdo rico, originado em aplicações mais inteligentes, as chamadas RIAs. Como ele, é possível entrar vídeo, áudio e dados nos formatos abertos AMF, SWF, FLV e F4V, compatíveis com o Adobe Flash Player.
Em relação à proteção do conteúdo, o RTMP não terá nenhuma ferramenta específica, deixando ao critério do desenvolvedor usar as suas próprias tecnologias de proteção de conteúdo.
O projeto Open Screen envolve 20 grandes parceiros da indústria que estão trabalhando por um ambiente operacional homogêneo para navegação web e O objetivo é retirar as barreiras para a publicação de conteúdo web e aplicações ricas entre PCs, celulares e televisores. Segundo dados fornecidos pela própria Adobe, o Flash Player está presente em mais de 98% dos computadores conectados à internet e fornece mais de 80% de todos os vídeos na web mundialmente.
Via: INFO Online
Populando ComboBox no Flash com PHP, MySQL e XML
Posted by Andrews on fevereiro 5th, 2009Tenho estudado muito nos últimos dias, afinal quem trabalha nesta área tem de estar em aprendizado constante. Estou iniciando meus estudos em OOP no PHP e também aprofundando meu conhecimento no Adobe Flex, e tenho progredido bastante neste período.
Mas brother, vamos ao que interessa para este post, acabei escrevendo um código utilizando PHP e MySQL, onde o PHP gera um XML através de uma consulta na tabela para alimentar um ComboBox Component no Flash.
Alimentar um ComboBox é simples, mas resolvi que iremos alimetar dois ComboBox, onde, um irá alimentar o outro, utilizarei os estados do Brasil e suas cidades como exemplo.
1ª Etapa:
Aqui, definiremos nossas tabelas no MySQL.
Tabela estado
CREATE TABLE `estado` ( `est_codigo` int(2) NOT NULL auto_increment, `est_nome` varchar(50), PRIMARY KEY (`est_codigo`) ) insert into `estado`(`est_codigo`,`est_nome`) values (1,'Santa Catarina'), (2,'Paraná'), (3,'Rio Grande do Sul'), (4,'São Paulo'), (5,'Rio de Janeiro');
Tabela cidade
CREATE TABLE `cidade` ( `cid_codigo` int(5) NOT NULL auto_increment, `cid_est_codigo` int(2) default NULL, `cid_nome` varchar(70) default NULL, PRIMARY KEY (`cid_codigo`) ) insert into `cidade`(`cid_codigo`,`cid_est_codigo`,`cid_nome`) values (1,1,'Porto União'), (2,1,'Canoinhas'), (3,1,'Balneário Camboriú'), (4,1,'Caçador'), (5,1,'Florianópolis'), (6,2,'Curitiba'), (7,2,'União da Vitória'), (8,2,'Foz do Iguaçu'), (9,3,'Porto Alegre'), (10,3,'Canoas'), (11,3,'Caxias do Sul'), (12,4,'São Paulo'), (13,4,'Campinas'), (14,4,'Santos'), (15,4,'Ubatuba'), (16,5,'Rio de Janeiro'), (17,5,'Angra dos Reis'), (18,5,'Paraty');
2ª Etapa:
Precisaremos de uma conexão com nosso banco de dados, caso ja tenha ou saiba como criar uma pode passar para a próxima etapa.
Crie um novo arquivo PHP e salve-o com o nome de Conexao.php então escreveremos a classe Conexao.
<?php class Conexao { // CONSTRUTOR function __construct() { return true; } /** * FUNCTION CONEXAO * @return $cnx */ function conectar() { $sHost = 'nome-do-host'; $sDB = 'nome-do-db'; $sUser = 'nome-do-user-mysql'; $sPassword = 'senha-do-usuer'; $cnx = mysql_connect($sHost, $sUser, $sPassword); mysql_select_db($sDB, $cnx); return $cnx; } } ?>
3ª Etapa
Nesta etapa definiremos as classes que irão gerar o XML para alimentar o ComboBox de estados que por sua vez irá alimentar o ComboBox de cidades.
Então crie um arquivo PHP chamado Estado.php e escreva a classe abaixo.
<?php // INFORMAMOS QUE O DOCUMENTO SERA DO TIPO XML header("Content-Type: text/xml; charset=UTF-8", true); // CONEXAO require_once('Conexao.php'); // CLASS ESTADO class Estado { // CONSTRUTOR function __construct() { return true; } /** * FUNCTION getEstado * @return xml */ function getEstado() { // CONEXAO $conexao = new Conexao(); $cnx = $conexao->conectar(); // SELECIONA ESTADO NO DB $sSQL = "SELECT est_codigo, est_nome FROM estado ORDER BY est_nome ASC"; $qSQL = mysql_query($sSQL, $cnx) or die(mysql_error()); // GERANDO XML echo "<?xml version='1.0' encoding='UTF-8'?> "; echo "<estados>"; while( $aRow = mysql_fetch_array($qSQL) ) { echo "<estado>"; echo "<codigo><![CDATA[" . $aRow['est_codigo'] . "]]></codigo>"; echo "<nome><![CDATA[" . $aRow['est_nome'] . "]]></nome>"; echo "</estado>"; }; echo "</estados>"; } } // INICIA CLASSE $estado = new Estado(); echo $estado->getEstado(); ?>
Salve-o, e agora iremos criar a classe que alimentará as cidades.
A Classe de cidades é exibida de forma dinâmica, onde, ao selecionar o estado desejado passaremos o código dele como parametro para consultar somente as cidades que fazem referência a este estado.
Crie um novo arquivo PHP e salve-o como o nome Cidade.php, e escreva a classe para as cidades.
<?php // INFORMAMOS QUE O DOCUMENTO SERA DO TIPO XML header("Content-Type: text/xml; charset=UTF-8", true); // CONEXAO require_once('Conexao.php'); // CLASS CIDADE class Cidade { // CONSTRUTOR function __construct() { return true; } /** * FUNCTION getCidade * @param Number codigo * @return xml */ function getCidade($codigo) { // CONEXAO $conexao = new Conexao(); $cnx = $conexao->conectar(); $nCodigo = $codigo; $sSQL = "SELECT cid_codigo, cid_nome FROM cidade WHERE cid_est_codigo = $nCodigo ORDER BY cid_nome ASC"; $qSQL = mysql_query($sSQL, $cnx) or die(mysql_error()); // GERANDO XML echo "<?xml version='1.0' encoding='UTF-8' ?>"; echo "<cidades>"; while ($aRow = mysql_fetch_array($qSQL)) { echo "<cidade>"; echo "<codigo><![CDATA[" . $aRow['cid_codigo'] . "]]></codigo>"; echo "<cidade><![CDATA[" . $aRow['cid_nome'] . "]]></cidade>"; echo "</cidade>"; } echo "</cidades>"; } } /** * INICIAMOS A CLASSE E PASSAMOS O CODIGO DO * ESTADO COMO PARAMETRO PARA A CONSULTA */ $cidade = new Cidade(); echo $cidade->getCidade($_GET['codigo']); ?>
4ª Etapa
Nesta quarta e última etapa, criaremos e escreveremos nosso arquivo Flash.
Então, crie um novo arquivo Flash, e arraste dois Components ComboBox para o palco, de o nome de instância para eles de estado_cbx e cidade_cbx, também crie um campo de texto dinâmico com o nome de alerta_txt.
Abaixo temos a imagem de como ficará os objetos no palco.

Agora, insira uma nova Layer para que possamos escrever nosso código ActionScript, onde, este por sua vez será o reponsável pelo carregamento e população dos ComboBox.
System.useCodepage = true; /** * FUNCTION getEstado */ getEstado = function() { var xmlEstado:XML = new XML(); xmlEstado.ignoreWhite = true; xmlEstado.load("Estado.php"); xmlEstado.onLoad = function(ok) { if (ok) { var aDados = Array(); var nTotal = this.firstChild.childNodes.length; // PASSANDO DADOS DO XML PARA ARRAY for (var i = 0; i < nTotal; i++) { aNode = this.firstChild.childNodes[i]; aDados[i] = { data:aNode.childNodes[0].firstChild.nodeValue, label:aNode.childNodes[1].firstChild.nodeValue }; } // POPULANDO COMBOBOX COM OS DADOS DO ARRAY estado_cbx.dataProvider = aDados; } }; // LISTENER PARA ESTADO var objEstado:Object = new Object(); objEstado.change = function() { sEstado = estado_cbx.selectedItem.label; nCodigo = estado_cbx.value; alerta_txt.text = sEstado; getCidade(nCodigo); }; estado_cbx.addEventListener("change", objEstado); } getEstado(); /** * FUNCTION getCidade * @param Number nCodigo */ getCidade = function(nCodigo) { var xmlCidade:XML = new XML(); xmlCidade.ignoreWhite = true; xmlCidade.load("Cidade.php?codigo="+nCodigo); xmlCidade.onLoad = function(ok) { if (ok) { var aDados = Array(); var nTotal = this.firstChild.childNodes.length; // PASSANDO DADOS DO XML PARA ARRAY for (var i = 0; i < nTotal; i++) { aNode = this.firstChild.childNodes[i]; aDados[i] = { data:aNode.childNodes[0].firstChild.nodeValue, label:aNode.childNodes[1].firstChild.nodeValue }; } // POPULANDO COMBOBOX COM DADOS DO ARRAY cidade_cbx.dataProvider = aDados; } } // LISTENER PARA CIDADE var objCidade:Object = new Object(); objCidade.change = function() { sEstado = estado_cbx.selectedItem.label; sCidade = cidade_cbx.selectedItem.label; alerta_txt.text = sCidade + " - " + sEstado; }; cidade_cbx.addEventListener("change", objCidade); }
Agora, salve o arquivo Flash com qualquer nome, compile e teste-o.
Prontinho, nosso trabalho está feito, e com a certeza de que tiraremos bastante proveito dele.
O post ficou grande, porém tenho a certeza de que estou progredindo em meus estudos e em meu conhecimento também, e assim espero repassar o pouco do que estou aprendendo com os demais, pois, como nossa areá vive em constante apredizado e nem todos tem a oportunidade de estar aprendendo em uma sala de aula fica ai então a pequena contribuição.
Clique aqui e veja como ficou nossa pequena aplicação
Macanudo, finalizo este post ao som de Chromophobia, Gui Boratto. d(-_-)b
Curso de extensão em Adobe Flash
Posted by Andrews on dezembro 5th, 2008Através de convite por parte de colegas de classe e amigos e após oficializado pelo professor André Weizmann coordenador do curso de Sistemas de Informação da Uniguaçu, realizei do dia 29/09 à 03/10/2008 um curso de extensão em Adobe Flash/Actionscript 2.0. Embora a idéia inicial era apenas mostrar o caminho das pedras para que os alunos pudessem ter idéia de como é trabalhar com a ferramenta, fiquei feliz em ver o desempenho e dedicação dos mesmos, pois em tão pouco tempo (20 horas) conseguiram se adaptar a ferramenta e trabalhar de forma simples com ela.
O que me deixa contente é a possibilidade de disseminar o conhecimento sobre a ferramenta Adobe Flash bastante utilizada nos dias de hoje e que em nossa região existem poucas pessoas qualificadas para tal.
Após o curso tive contato com alguns alunos os quais estão estudando/desenvolvendo com a ferramenta e o melhor, alguns ficaram tão interessados que estão buscando informações sobre desenvolvimento de jogos utilizando Adobe Flash e outros estão iniciando seus estudos em Adobe Flex.
Fiquei muito feliz em poder disseminar o pouco conhecimento que tenho com pessoas que estão buscando uma profissão para seu futuro profissional.
As poucas horas de estudo renderam no último dia de curso um mini site, o qual pode ser visto clicando aqui.
Então, demos um VIVA para o Adobe Flash!
Formatando texto no flash sem complicação
Posted by Andrews on novembro 8th, 2008Velhos tempos onde se formatar um texto dinâmico no flash era coisa do outro mundo, criava-se stylos, definia-se configurações manualmente, e muitas vezes era um sofrimento acertar a formatação ideal.
Pois bem, acabaram-se os problemas (pelo menos os meus), a classe caurina resolve pra gente, como? através da propriedade especial TextShortcuts.
Crie um campo de texto do tipo Dynamic text e defina o Instance name para texto_txt.
Após ter criado o campo de texto dinâmico, basta apenas inserir algum texto dentro da caixa, digitar o script abaixo e testar para comprovar.
// IMPORT CLASSES: Tweener, TextShortcuts import caurina.transitions.Tweener; import caurina.transitions.properties.TextShortcuts; // FUNCTION formatarTexto formatarTexto = function() { // INIT TextShortcuts TextShortcuts.init(); // DEFINE TEXT SIZE Tweener.addTween(texto_txt, {_text_size:25, time:0.5, transition:'linear'}); // DEFINE COLOR Tweener.addTween(texto_txt, {_text_color:0x003366, time:1, transition:'linear'}); // DEFINE INDENT Tweener.addTween(texto_txt, {_text_indent:100, time:1, transition:'linear'}); // DEFINE LEADING Tweener.addTween(texto_txt, {_text_leading:10, time:1, transition:'linear'}); // DEFINE MARGIN LEFT Tweener.addTween(texto_txt, {_text_leftMargin:20, time:1, transition:'linear'}); // DEFINE RIGHT MARGIN Tweener.addTween(texto_txt, {_text_rightMargin:20, time:1, transition:'linear'}); // DEFINE LETTERSPACING Tweener.addTween(texto_txt, {_text_letterSpacing:0.5, time:1, transition:'linear'}); } formatarTexto();
Veja aqui o exemplo em funcionamento.
Mamão com açúcar não? então, um viva para a classe caurina!
Player em Flash para vídeos diretos do youtube
Posted by Andrews on setembro 3rd, 2008Um de meus projetos necessitou a criação de um player de vídeos e agora estou compartilhando a idéia, ai tu me diz: ok Andrews, um player é simples de se fazer, só arrastar um componente e configurar a url do vídeo FLV! porém, o desafio era fazer um player com vídeos vindos diretos do YouTube e de forma randômica, que por sua vez a url destes vídeos estariam cadastrados em um banco de dados.
Então mãos a obra e vamos fazer este player,
Construindo a tabela para abrigar as url’s. Usaremos o MySQL como base de dados para abrigar estas url’s.
/* CRIANDO A TABELA */ CREATE TABLE `videos` ( `vid_codigo` int(10) NOT NULL auto_increment, `vid_url` varchar(300) default NULL, PRIMARY KEY (`vid_codigo`) ) /* INSERINDO URL'S DO YOUTUBE */ insert into `videos`(`vid_codigo`, `vid_url`) values (1,'http://br.youtube.com/watch?v=DJZUrTXPIBE'), (2,'http://br.youtube.com/watch?v=NfxtAcjYbX0'), (3,'http://br.youtube.com/watch?v=TGBZfhLsljY');
Criada a tabela, partiremos agora para o php, onde criaremos uma consulta para buscar as url’s dos vídeos nesta tabela. Também criaremos a função que faz a conversão da url do vídeo do YouTube, para que tenhamos a url final/verdadeira do vídeo FLV. Esta conversão se faz necessária devido a url apresentada quando estamos vendo o vídeo no YouTube não ser a url final/verdadeira do vídeo FLV, então se colocarmos esta url o player que criaremos não conseguirá encontrar o vídeo, caracterizando assim uma url inválida.
Criando a função para conexão com o banco de dados. Após escrever a função, salve-a com o nome de conexao.php.
function conexao() { $cnx = mysql_connect('nome-do-servidor', 'nome-do-usuario', 'senha'); mysql_select_db('nome-da-tabela', $cnx); return $cnx; }
Criaremos então a função para selecionar a url na tabela, e fazer a conversão para a url final/verdadeira do vídeo FLV. Após escrever a função, salve-a com o nome de video_url.php.
/* INCLUINDO O ARQUIVO DE CONEXAO*/ require_once('conexao.php'); /* VARIAVEL DE CONEXAO COM O DB */ $cnx = conexao(); /* CONSULTA TABELA VIDEOS */ $SQL_video = "SELECT vid_url FROM videos ORDER BY rand() LIMIT 1"; $q_video = mysql_query($SQL_video, $cnx) or die(mysql_error()); $row_video = mysql_fetch_array($q_video); /* PASSANDO URL SELECIONADA PARA VARIAVEL */ $url = $row_video['vid_url']; // ATIVADA (UPDATE EM 29-01-2009) $data = implode("", file($url)); /* FUNCTION CRIADA DEVIDO A MEU SERVER BLOQUEAR A FUNCTION file() ACIMA, * ENTAO curl FAZ O SERVICO DO file() E TRAZ A URL EXTERNA. * * EXPERIMENTE TESTAR EM SEU SERVER A LINHA ACIMA, SE FUNCIONAR * PODE REMOVER O BLOCO DE CODIGO ONDE UTILIZA AS curl */ // DESATIVADA (UPDATE EM 29-01-2009) /*$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_HEADER, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0); $data = curl_exec($ch); curl_close($ch);*/ if (preg_match_all("/&t=[^&]*/", $data, $matches)) { $t = $matches[0][0]; $t = preg_split("/=/", $t); $t = $t[1]; $v = $url; // DESATIVADA (UPDATE EM 29-01-2009) //$v = preg_split("/?v=/", $v); $v = explode("?v=", $v); $v = $v[1]; echo "&Path=http://www.youtube.com/get_video.php?video_id=".$v . "&t=".$t . "&.flv"; } else { echo "null"; } mysql_free_result($q_video);
Ja temos a função do php que faz a ponte para trazer as url’s verdadeiras pronta. Agora partiremos para o flash, onde faremos o player para tocar o vídeo.
Crie um novo arquivo no flash, podendo deixá-lo com os tamanhos padrões 550 x 400 pixels.
Agora, renomei a Layer 1 para “player”, arraste um componente “FLVPlayback” para o palco e para o nome de instância digite “my_vid”.
Agora vamos criar as action que serão responsáveis por fazer a ligação com o arquivo php.
Crie uma nova Layer com o nome de “Action”, clique no Frame 1 e precissione a tecla F9.
Agora iremos escrever o código actionscript a seguir para que nosso player funcione.
// INFORMANDO AO FLASH QUE A COMUNICACAO (ARQUIVO) ESTA EM OUTRO DOMINIO System.security.allowDomain("*"); var myvar:LoadVars = new LoadVars(); // CARREGANDO O ARQUIVO PHP myvar.load("video_url.php"); myvar.onLoad = function() { // PASSANDO A URL VERDADEIRA DO YOUTUBE PARA O PLAYER my_vid.contentPath = myvar.Path + "&t=" + myvar.t + "&.flv"; };
Pronto! agora salve e compile seu arquivo flash, e pode testá-lo em seu servidor.
Veja aqui o player em funcionamento. Clique no botão de refresh para ver os vídeos de forma randômica.
Abraço. Espero que tenham aproveitado.




Comentários recentes