
Flash + Xml
#1
Posted 01/09/2005, 16:14
Vlw........
#2
Posted 01/09/2005, 20:58

Eu te indico o imasters.... sem dúvidas um ótimo site de tutoriais xml e Flash.
Galeria de fotos facilitada
Para aqueles que têm dificuldade em criar galerias de imagens, principalmente com paginação de registros, criei uma classe especial.
Populando uma Datagrid com AMFPHP
Como popular um DataGrid, componente este do Flash MX 2004 Pro, através de remoting, mais precisamente AMFPHP.
Blog xom Flash + XML
Vamos desenvolver um blog com dados dinâmicos no Flash, seleção de posts e todos os posts existentes.
Galeria dinâmica de vídeos
Vamos criar uma galeria de videos com dados dinâmicos via XML e uma playlist para que o usuário adicione os videos favoritos dele.
Carregamento de imagens aleatórias sem repetição
Criaremos um sistema de Carregamento de imagens aleatórias, sem repetição, utilizando sharedObject.
Quiz dinâmico com XML
Criaremos um quiz dinâmico, com dados recebidos de um arquivo XML.
Paginação
Vamos criar um sistema de paginação simples, usando como base o artigo da galeria de imagens com XML da matéria anterior.
Galeria de imagens com XML
Criaremos um sistema de galeria de imagens no Flash acessando dados vindos de um XML.
Flash com WebServices
Com o Flash, vamos comunicar com um Web Service sem utilizar nenhuma linha de código.
Macromedia Flash Remoting atualizado
Atualização dos componentes para a tecnologia Flash Remoting que incluem classes e componentes.
AMFPHP
O AMFPHP é uma alternativa Open-Source que permite o uso da tecnologia FlashRemoting em servidores PHP sem a necessidade da instalação de nenhum recurso adicional ao servidor além do próprio servidor PHP.
Lançado o tão aguardado Macromedia Flex
O Flex é um framework que trabalha com sintaxe e em conjunto com o J2EE ou J2ME e o Flash.
Geoprocessamento com Flash
Imagine que você pretende montar um negócio numa determinada região de alguma cidade do país, como poderíamos avaliar a possibilidade de sucesso do mesmo?
Gravando MovieClips em banco de dados com dados Serializados
O objetivo com esse arquivo é demonstrar a possibilidade de se desenhar um MovieClip em tempo real.
Nova versão Macromedia Studio MX 2004
Uma das grandes novidades na nova versão do Studio MX é a divisão do Flash em duas partes, o Flash MX 2004 e o Flash MX 2004 Professional.
XMLSockets
Iniciaremos esta semana falando de XMLSockets, interessantíssimo servidor. Chats, jogos e etc.
Flash e X-Technologies - A Nova Ordem do Mundo?
Essa matéria não possui descrição.
Flash MX: Player
Essa matéria não possui descrição.
Comparativo: Flash vc LiveMotion
Essa matéria não possui descrição.
Análise sobre o novíssimo Flash MX
Essa matéria não possui descrição.
Bom cara eu fiz uma busca lá e encontrei estes resultados... bom proveito

Um abraço,
Patrique André
#3
Posted 02/09/2005, 08:53

mas o seguinte... eu tava procurando algo como fazer 1 menu em Flash + XML
tem algo ai q vc pode me passar?
+ 1 vez Obrigado

#4
Posted 02/09/2005, 10:50
#5
Posted 04/09/2005, 23:07


#6
Posted 04/09/2005, 23:10

como q eu faço para colocar esse menu em submenus????
como q ficaria o code XML e o code AS???
vc sabe????
Abração
#7
Posted 05/09/2005, 00:18

Bom cara o tutorial a seguir foi criado pelo Pedro Claudio e tomare que ele te ajude
Vamos fazer as duas partes.
parte 1 - flash
parte 2 - xml
PARTE 1 o arquivo flash
/*
Crie um clip com uma caixa de texto instaciado por label, abra a Library clique com o botão direito no clip e em Properties>Advanced, marque a opção Export for ActionScript e em Identifier ponha ibase.
*/
//previnir possivel erro de leitura de acentos
System.useCodepage = true;
// declara novo objeto menu
var menuXML = new XML();
//ignora espaços em branco no xml
menuXML.ignoreWhite = true;
//carrega o xml
menuXML.load("menu.xml");
//função será executada após o termino do carregamento do xml
menuXML.onLoad = function(ok) {
if (ok) {
//caso a carga do xml tenha tido sucesso inicia a criação do menu
montaMenu();
} else {
/* caso a carga do xml tenha falhado vamos sair do flash iniciar uma outra ação. aqui estou chamando uma pagina e saindo flash mas pode ser carregado um swf, que não é o que vamos ver */
getURL("menuErro.html");
}
};
//aqui começamos a montar o menu
function montaMenu() {
/* a posição y é iniciada com numero negativo porque logo abaixo vou incrementa-lo com mesmo valor posito acrescido de um, então o 1º item do menu terá a propriedade _y = 1 aqui está com 24 pois é a altura do mc que vamos atachar */
var posY:Number = -24;
/* chidNodes se refere ao 1º nó do nó atual como o nó atual é o XML a variavel node vai receber as tags pai, que é o corpo prinicipal do menu */
var node = menuXML.childNodes;
for (var i = 0; i<node.length; i++) { // node.length é a quantidade de tags pai
posY += 24+1; // incremento a posição y do menu
v=(node[i].hasChildNodes())?1:2;
/*
agora chamaremos uma função para criar um item do menu pai. passamos os dados necessários para criação de cada item por parâmentro. esse paramentro é uma variavel do tipo Object possuindo 4 objetos:
1º objeto - _x do item de menu que será criado
2º objeto - _y do item de menu que será criado
3º objeto - apenas para identificar que tipo de item estamos criando, submenu(0), menu(1) ou menu sem submenus(2)
4º objeto - atributos - vamos entender esse objeto.
node[i] possui como valor uma tag pai, então veja uma de nossas tags pai
<node id="M1itemMenu" titulo="Fale Conosco" link="3" />
para acessarmos os valores de id,titulo e link usamos a propriedade xml attributes 5º objeto - aqui é o segredo do menu, este obejto lembrará o item
de menu e os itens submenu
* eu poderia fazer chamar essa função assim:
dados=new Object();
dados.X=1;
dados.Y=posY;
dados.atributos=node[i].attributes;
dados.node=node[i];
setAction(dados);
porém o flash permiti outra opção na criação de objetos da seguinte forma
variavel={objeto1:valor1,objeto2:valor2};
*/
setAction({X:1, Y:posY, v:v, atributos:node[i].attributes, node:node[i]});
}
}
function setAction(dados) {
// criamos o item de menu e setamos algumas variaveis e propriedades para ele
_root.attachMovie("ibase", dados.atributos.id, dados.atributos.depths+50);
_root[dados.atributos.id].v = dados.v;
_root[dados.atributos.id].Id = dados.atributos.id;
_root[dados.atributos.id].link = dados.atributos.link;
_root[dados.atributos.id]._x = dados.X;
_root[dados.atributos.id]._y = dados.Y;
_root[dados.atributos.id].label = dados.atributos.titulo;
_root[dados.atributos.id].node = dados.node;
// nosso segredo novamente agora o item de menu se lembrerá de seu pai ou seus filhos
switch(dados.v){
case 2: //menu sem filhos
myRelease(_root[dados.atributos.id]);
// associamos uma ação ao evento onRollOver, mouse sobre o item do menu
_root[dados.atributos.id].onRollOver = function() {
this.myClear();
// será executado um metodo MovieClip - nós vamos cria-lo mais a frente
};
break;
case 1:
// menu com submenus
//associamos uma ação ao evento onRollOver, mouse sobre o item do menu
_root[dados.atributos.id].onRollOver = function() {
this.myClear();
// será executado um metodo MovieClip - nós vamos cria-lo mais a frente
// chamos a função que vai criar os submenus
montaSubmenu({node:this.node, y:this._y, h:this._height, w:this._width});
};
break;
default: //submenu
myRelease(_root[dados.atributos.id]);
break;
}
}
function myRelease(x){
//associamos uma ação ao evento onRelease
x.onRelease = function() {
this._parent.gotoAndStop(this.link);
this.myhide();
// ao solta o botão do mouse será executado um metodo MovieClip - nós vamos cria-lo mais a frente
};
}
function montaSubmenu(item) {
var posY:Number = item.y-(item.h+1);
if (item.node.hasChildNodes()) {
for (var i = 0; i<item.node.childNodes.length; i++) {
posY += item.h+1;
// veja que o submenu que será criado recebe node completo do pai
setAction({node:item.node, atributos:item.node.childNodes[i].attributes, X:(item.w+1), Y:posY, v:0});
}
}
}
MovieClip.prototype.myhide = function() {
//metodo myhide que irá fechar um submenu
if (this.node.hasChildNodes()) {
// perguntamos ao MovieClip se ele tem irmãos
xmlNode = this.node.childNodes;
for (var i = 0; i<xmlNode.length; i++) {
/*para o MovieClip que está em execução não seja excluido antes de excluir seus irmãos vamos testa-lo*/
if (xmlNode[i].attributes.id != this.Id) {
this._parent[xmlNode[i].attributes.id].kill();
// executamos um outro metodo que criaremos
}
}
this.kill();
}
};
MovieClip.prototype.kill = function() {
//metodo kill que apenas vai remover o movie clip
this.swapDepths(1048000);
this.removeMovieClip(); //destrói o MovieClip do palco
};
MovieClip.prototype.myClear = function() {
//metodo que remove todos os submenu exceto os que são filhos do menu atual
xmlNode = this._parent.menuXML.childNodes;
for (var i = 0; i<xmlNode.length; i++) {
if (xmlNode[i].attributes.id != this.node.attributes.id &&
xmlNode[i].hasChildNodes) {
nodeitem = xmlNode[i].childNodes;
for (var j = 0; j<nodeitem.length; j++) {
this._parent[nodeitem[j].attributes.id].kill();
}
}
}
};
PARTE 2 o arquivo xml
Atributos id e depths são únicos não podendo existir duplicidade.
<?xml version="1.0" encoding="utf-8"?>
<node id="M0itemMenu" titulo="Produtos" depths="0" link="">
<node id="S0M0itemMenu" titulo="Clips" depths="1" link="2"/>
<node id="S1M0itemMenu" titulo="Site" depths="2" link="2"/>
</node>
<node id="M1itemMenu" titulo="Fale Conosco" depths="3" link="2" />
<node id="M2itemMenu" titulo="Parceiros" depths="4" link="">
<node id="S0M2itemMenu" titulo="Ponto Flash" depths="5" link="3"/>
</node>
<node id="M3itemMenu" titulo="Início" depths="6" link="1" />
Espero que te ajude

Um abraço,
Patrique André
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)