Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoas, estou a horas tentando resolver o problema mas não estou encontrando forma de fazer isto;
Tenho uma galeria de imagens da seguinte forma: categoria (paisagem, ilustração...) se eu seleciono paisagem, ela me apresenta uma imagem base para paisagem e mais 10 miniaturas, quando eu clico na em alguma miniatura a imagem base é acrecentada a um favoritos que mostra a imagem base reduzida, e acrecentou ao favoritos da categoria paisagem a miniatura selecionada, se eu clicar em outra miniatura da mesma categoria o sistema acrescenta mais a miniatura clicada ao favoritos da categoria, se eu mudar de categoria e clicar em alguma miniatura ele cria mais um grupo no favoritos com as miniaturas selecionadas de cada categoria, ou seja eu vou criando grupos de imagens no favoritos.
O problema é que quando eu seleciono 2 miniaturas por exemplo da categoria ele cria 2 vezes o mesmo grupo, e não poderia o sistema deveria estar acrecentando as miniaturas ao grupo existente e só criar outro grupo caso ele não exista ainda.
estou tentando da seguinte forma:
$i=$t=0;
var code:Array = new Array();
function montaFav(ref) {
// ref é a referencia da imagem, sempre que eu clicar em alguma minatura da mesma categoria ref vai ser sempre o mesmo, se eu cliquei em 8 miniaturas da categoria paisagem ref vai vir sempre igual.
for ($c=0; $c<code.length; $c++) { // conto quantos registros tem o array, tem um bug aqui eu sei é proposital, só funciona a partir do 1º clique mas isto é simples de resolver.
if (code[$c] != ref) {
// verifico se alguma linha do array é diferente de ref ou seja se o grupo da miniatura clicada ainda não existir ele executa a função cria e duplica a imagem base reduzida do grupo, aqui está o problema, depoois falo.
cria();
}
}
code[$i] = ref;
$i++;
function cria() {
// aqui é tudo simples e sem problemas
duplicateMovieClip("img", "img"+$t, $t);
eval("img"+$t).imagem.loadMovie("path/"+ref+".jpg");
eval("img"+$t)._x = $t*85;
$t++;
}
}
O problema é ali:
if (code[$c] != ref) {
cria();
}
como podem ver no código coloquei a variável do array depois de terminar o for
code[$i] = ref;
porque se eu colocar antes a condição if nunca executaria pois ele sempre vai encontrar a referncia no array, então coloquei abaixo assim quando clico na miniatura ela ainda não está dentro do array somente após o 1º clique.
Aquestão é que não funciona o if ele funciona a 1ª vez depois não porque como estou verificando registro por registro do array a verificação encontra vários registros que não são iguais a referência passada e com isto ele executa a função cria, já fiz muita coisa aqui já não sei mais o que tentar, agradeço qualquer dica para resolver o problema.
Obrigado.
Carregando comentários...