Autor Tópico: ScrollPAIN!!!!  (Lida 2515 vezes)

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« em: 4 de Fevereiro de 2006, 02:59:09 »
Estou com um problema bastante bicudo... Para mim pelo menos que estou a começar com o ActionScript!

Podem ver o que estou a dizer AQUI!

Têm que escolher a nuvem do meio e depois "Máquinas de Diversão Infantil"... Reparem que o Scrollpane das miniaturas "corta" as duas últimas!! Se carregarem na 2ª miniatura vêm também que carrega 2 fotos para outro scrollpane... Também este corta a 2ª foto!!

Por vezes dá direito... por vezes dá mal!! NÃO PERCEBO!!!

Aqui fica a parte do código que interessa...

Código: [Seleccione]

________________________________________________________________________________
________
//*********************************VARIÁVEIS***********************
var nome_prodArr:Array = ....

//Define o número de fotos de cada produto
var numFotosArr:Array = .....

//Define a descrição para cada produto
var text_prodArr:Array = ......

//Define a categoria do catálogo
var path:String = .....

//Define o nome da categoria
label_text.text = ......

//Define o número de miniaturas
var n:Number = 46;
// ********************************************************************************
******************************


//FOTOS
function load_fotos(np)
{
this.onEnterFrame = function()
{
//Cria o ScrollPane
this.createClassObject(mx.containers.ScrollPane, "scroll_fotos", 100, {_x:202, _y:22});
scroll_fotos.setStyle("borderStyle", "none");
scroll_fotos.drawFocus = undefined;
scroll_fotos.setSize(330, 320);
scroll_fotos.contentPath = "fotos";

//Desenha a grelha para carregar as fotos
var startX:Number = 0;
var startY:Number = 0;
var spacer:Number = 340;
var nf:Number = numFotosArr[np];
for (var i:Number = 1; i <= nf; i++)
{
var tClip = scroll_fotos.content.attachMovie("Loader_Produtos", "foto"+i, 200+i);
tClip._x = startX;
tClip._y = startY;

if (i%1 == 0) //Aqui define-se o número de botões por linha
{
startX = 0;
startY += (tClip._height+spacer);
}
else
{
startX += (tClip._width+spacer);
}
}

//Carrega as fotos
scroll_fotos.content.foto1.holder.loadFotos(0, 0, path+ np+ ".png", "foto1");
for (var i:Number = 2; i <= nf; i++)
{
scroll_fotos.content["foto"+i].holder.loadFotos(0, 0, path+ np+ String.fromCharCode(95+i)+ ".png", "foto"+i);
}
delete this.onEnterFrame;
}
}



//MINIATURAS
this.onEnterFrame = function()
{
//Cria o ScrollPane
this.createClassObject(mx.containers.ScrollPane, "scroll_miniaturas", 300, {_x:29, _y:16});
scroll_miniaturas.setStyle("borderStyle", "none");
scroll_miniaturas.drawFocus = undefined;
scroll_miniaturas.setSize(160, 210);
scroll_miniaturas.contentPath = "miniaturas";

//Desenha a grelha para carregar as fotos
var startX:Number = 0;
var startY:Number = 0;
var spacer:Number = 70;
for (var i:Number = 1; i <= n; i++)
{
var tClip = scroll_miniaturas.content.attachMovie("Loader_Produtos", "mini"+i, 400+i);
tClip._x = startX;
tClip._y = startY;

if (i%2 == 0) //Aqui define-se o número de botões por linha
{
startX = 0;
startY += (tClip._height+spacer);
}
else
{
startX += (tClip._width+spacer);
}
tClip.GlowThumbs();
}

//Carrega as miniaturas
for (var i:Number = 1; i <= n; i++)
{
scroll_miniaturas.content["mini"+i].holder.loadThumbs(0, 0, path +i+ "_th.png", "mini"+i);
//Aplica as definições de cada produto
scroll_miniaturas.content["mini"+i].i=i;
scroll_miniaturas.content["mini"+i].onRelease = function()
{
load_fotos(this.i);
nome_prod.text = nome_prodArr[this.i];
text_prod.htmlText = text_prodArr[this.i];
}
}
delete this.onEnterFrame;
}

load_miniaturas();
________________________________________________________________________________
_________



P.S.: Não liguem ao resto dos bugs!!!

Fiquem bem e obrigado desde já pelo tempo perdido!!

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« Responder #1 em: 5 de Fevereiro de 2006, 19:39:56 »
Ninguém tem ideias?? Estou a ficar desesperado... Já tentei de tudo!!

Hasta!

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
ScrollPAIN!!!!
« Responder #2 em: 6 de Fevereiro de 2006, 00:51:08 »
Heyas,

nao li o code que colocaste aqui, mas ao testar a tua cena percebi o problema...

O que se passa é que nao estas a fazer o scroll so depois de carregares TUDO...desse modo, o Flash detecta o 1º pacote de informaçao e fica-se por ai. Por isso é que das vezes seguintes que efectuas a mesma selecçao ja vai dar...pq o 1ºpacote esta na memoria e ele carrega o proximo "and so on"...

Hope that helps...
Fica bem
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

http://www.ricardocastelhano.com/
-----------------------------------
Keep on "Flashing..."

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« Responder #3 em: 6 de Fevereiro de 2006, 01:11:15 »
Obrigado pela resposta Grettir!

Mas gostava de saber como posso fazer uma vez que as imagens estão a ser carregadas externamente...

Dá-me mais umas luzes por favor!!

Fica bem!

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
ScrollPAIN!!!!
« Responder #4 em: 6 de Fevereiro de 2006, 23:23:21 »
Heyas,

Ok, entao aqui vai...

Quando se carrega cenas externas, tens o event "onLoad" para que algo aconteça SOMENTE quando carregou TOTALMENTE.

Funciona assim, crias um método (function) onde tens o codigo todo que utilize "as cenas que vem de fora", depois no onLoad vais chamar esse metodo.

Humm...é possivel que te seja complicado com esta explicaçao por alto, mas pesquisa no help do Flash por "onLoad" que certamente sera mais facil ao veres uma aplicaçao disso.

Fica bem
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

http://www.ricardocastelhano.com/
-----------------------------------
Keep on "Flashing..."

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« Responder #5 em: 7 de Fevereiro de 2006, 17:19:18 »
Obrigado mais uma vez Grettir... vou investigar o "onLoad Event" então...

Até depois... :D

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« Responder #6 em: 3 de Março de 2006, 01:40:50 »
Pessoal estou mesmo a precisar de resolver este bug... Tenho que entregar o site até 6ª feira...

Por favor ajudem-me!!

Fiquem bem!

Offline senshi

  • Novato
  • Mensagens: 6
    • Ver Perfil
    • http://www.fanarte.com
ScrollPAIN!!!!
« Responder #7 em: 3 de Março de 2006, 05:57:06 »
caramba...
nao entendi pq esta dentro de um evento ENTERFRAME o.o
olha so.. tem esse script aki:

Código: [Seleccione]
var loadListener:Object = new Object();

loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void {
    trace(">> loadListener.onLoadComplete()");
    trace(">> =============================");
    trace(">> target_mc._width: " + target_mc._width); // 0
    trace(">> httpStatus: " + httpStatus);
}

loadListener.onLoadInit = function(target_mc:MovieClip):Void {
    trace(">> loadListener.onLoadInit()");
    trace(">> =============================");
    trace(">> target_mc._width: " + target_mc._width); // 315
}

var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", mc);



deve ser util pra vc!
tenta usar ele! ^^
ttp://www.fanarte.com
http://www.fanarte.com/portal

Offline lfdesign

  • Aprendiz
  • **
  • Mensagens: 21
    • Ver Perfil
ScrollPAIN!!!!
« Responder #8 em: 4 de Março de 2006, 14:10:24 »
senshi obrigado pela ajuda!!

O código que uso já não é o mesmo... mas no entanto continuo com o problema!

Quanto ao código que me mandaste não faço ideia para que serve!!? Eu ainda sou um bocado noob...


Fiquem bem

Offline senshi

  • Novato
  • Mensagens: 6
    • Ver Perfil
    • http://www.fanarte.com
ScrollPAIN!!!!
« Responder #9 em: 4 de Março de 2006, 17:08:47 »
o  "loadListener.onLoadComplete.." executa o comando quando termina de carregar o arkivo

e o "loadListener.onLoadInit.." executa quando o arkivo ja está "pronto" apra ser utilizado...

resumindo seria isso! ^^

aconselho vc a usar o onLoadInit ...
ttp://www.fanarte.com
http://www.fanarte.com/portal

 




Roleta das Anedotas - Abre noutra janela