Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ai amigo tudo bem?
Eu fiz uma galeria em XML no AS3 que ao clicar em um botao, aparece os itens referente a categoria do botao.
Agora o que eu gostaria da ajuda de voces é para fazer eu movimentar esses itens em um botao Next e Prev. Pois quando aparecem os itens do botao, ao clicar no botao Next, o os itens vao sumindo da tela, ao clicar em Prev, eles vao voltando. Se alguem puder ajudar.
O link para voces verem esse problema é esse: link do exemplo com erro
O arquivo pode ser baixado aqui
O codigo todo do flash segue abaixo onde em está em vermelho são as linhas referentes ao movimento de proximo e anterior:
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.xml.XMLDocument;
import caurina.transitions.Tweener;
//Valor de distancia entre os itens
var posY:uint = 5;
//Variável para saber qual a lista de produtos atual
var currentList:int;
//carregamento do XML
var urlLoader:URLLoader = new URLLoader();
urlLoader.load(new URLRequest("xml/products_gallery.xml"));
urlLoader.addEventListener(Event.COMPLETE, onComplete);
//Criando o objet xml e a xmlList
var xml:XML;
var xmlList:XMLList;
//Função disparada quando terminar de carregar o XML
function onComplete(evt:Event):void
{
//Armazena o XML
xml = new XML(evt.target.data);
//Armazena o total de nós foto do XML
xmlList = xml.children();
//trace(xmlList);
//Chama a função que lista os botões das categorias de produtos
listButtons();
}
//Função que lista os nós de categorias do xml
function listButtons():void
{
//loop para contar os nós de categorias
for (var i:int = 0 ; i < xmlList.length() ; i++)
{
//criamos um novo objeto que está na library
var mcButton:ButtonMC = new ButtonMC();
//posicionamos um botao abaixo do outro
mcButton.y = (mcButton.height + posY) * i;
//armazemanos o indice do movieclip
mcButton["btn"] = i;
//colocamos o nome do paramentro type do xml no textfield do botao
mcButton.txtType.text = xmlList.@type*;*
//trocamos o ponteiro do mouse e deixamos ele clicável
mcButton.buttonMode = true;
mcButton.mouseChildren = false;
//Chama a função que lista os produtos da categoria referente ao botao clicado
mcButton.addEventListener(MouseEvent.CLICK, callProducts);
//adicionamos ao stage
mcMenu.addChild(mcButton);
}
//setamos os valores para o scrollbar que rola os botoes
sb.init(mcMenu, "easeOutBack", 2, true, 2);
}
var position:int = 0;//posição inicial do primeiro item
var visItems:int = 3;//numero de itens visiveis
var spacing:int = 12.3;//distancia entre os itens
var offset:int = 25;
//Lista os produtos de uma categoria
function listProducts(list:int):void
{
* **var posX:int;//nova posição X do item*
var min:int = position;//a menor posição X de um item é igual a posição inicial do primeiro item da lista
var max:int = position + visItems;//o maximo de items a mostra na tela, é aposição do primeiro mais o total de items visiveis
//removemos o grupo anterior para que fique somento o atual
while(mcProductsList.numChildren)
{
mcProductsList.removeChildAt(mcProductsList.numChildren - 1);
}
for (var i:int = 0; i < xmlList.(@id == list).product.length(); i++)
{
//criamos um novo objeto que está na library
var mcProduto:Product = new Product();
//armazemanos o indice do movieclip
mcProduto["prod"] = i;
//
* **var alph:int = Number(i >= min && i < max);*
//posicionamos um botao do lado do outro
var xPos:int = i (mcProduto.width + spacing);*
//
var xTar:int = position (spacing + mcProduto.width);*
//colocamos o nome do paramentro name do xml no textfield do botao
mcProduto.txtNome.text = xmlList.(@id==list).product.@name; //xmlList.product.@name;
//carregamos as imagens dentro do mcProduto
* mcProduto.carrega(xmlList.(@id==list).product.@photo**);*
//trocamos o ponteiro do mouse e deixamos ele clicável
mcProduto.buttonMode = true;
mcProduto.mouseChildren = false;
//Chama a função que lista os produtos da categoria referente ao botao clicado
mcProduto.addEventListener(MouseEvent.CLICK, callURL);
//adicionamos ao stage
mcProductsList.addChild(mcProduto);
* **if(i < min)*
{
posX = xPos - offset - xTar;
}
else if (i >= max)
{
posX = xPos + offset - xTar;
}
else
{
posX = xPos - xTar;
}
Tweener.addTween(mcProduto, {x:xPos, time:.5, transition:"easeInSine"});
Tweener.addTween(mcProduto, {alpha:alph, time:.3, transition:"easeInSine"});
}
}
//Ao clicar em um dos botoes do mcMenu aparece sua lista de produtos
function callProducts(evt:MouseEvent):void
{
//atribuimos acad botao o seu paramentro xml de id
currentList = xmlList.@id[evt.currentTarget["btn"]];
//trace(currentList);
//chamamos a função qu lista os produtos e como parametro passamos o valor de id do botao clicado
listProducts(currentList);
}
//Função para associar os links do xml ao produtos
function callURL(evt:MouseEvent):void
{
var callLink:URLRequest = new URLRequest(xmlList.product.@url[evt.currentTarget["prod"]]);
navigateToURL(callLink, "_self");
}
//atribuimos listeners ao botoes btnPrev e btnNext
btnPrev.addEventListener(MouseEvent.CLICK, scrollPrev);
btnNext.addEventListener(MouseEvent.CLICK, scrollNext);
//função do btnPreb
function scrollPrev(e:MouseEvent = null):void
{
if(position <= 0){return};
position--;
//chamamos a função listProducts
listProducts(currentList);
}
//função do btnNext
function scrollNext(e:MouseEvent = null):void
{
if(position >= xmlList.product.length() - visItems){return};
position++;
//chamamos a função listProducts
listProducts(currentList);
}
Carregando comentários...