Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Henrique

[Resolvido] Deletar ou cancelar função?

Recommended Posts

Olá,

 

To com um problema aqui com scroll desenvolvido no flash, a questão é que quando inicio a página como não tem conteúdo suficiente para dar scroll não habilita, quando mudo de página para uma notícia por exemplo ele habilita o scroll devido ao conteúdo, até aí tudo bem, o problema é que se eu vou para qualquer sessão do site o scroll fica habilitado ou seja o último conteúdo que formou o scroll fica, a barra de scroll desaparece mas o scroll funciona, então é por isto a pergunta, como posso deletar uma função fazer com que ela reinicie como se eu estivesse abrindo o site? tentei delete nomedafuncao(); mas não rolou.

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue código:

 

Este fica dentro do scroll

function updateScroll(h) {
	cheight = h;
	if (h<=Stage.height) {
		this._visible = false;
		return;

	}
	this._visible = true;
	coef = Stage.height/h;
	//te.changeHeight(scroll_mc, Stage.height*coef);
	scroll_mc._height = Stage.height*coef;
	scroll_mc._y = 0;
	ease.onEnterFrame = update;
	enable = false;

}
function update(valor) {
	coef2 = 1/coef;
	yf = -scroll_mc._y*coef2;
	_root.container_mc._y = _root.container_mc._y+(yf-_root.container_mc._y)/10;
	if (Math.abs(yf-_root.container_mc._y)<1.000000E-002 && enable) {
		delete this.onEnterFrame;
	}
}
var cheight;
var coef;
var enable;
te = new tweenEffects();
var ease = this.createEmptyMovieClip("ease", this.getNextHighestDepth());
scroll_mc.useHandCursor = false;
scroll_mc.onPress = function() {
	scroll_mc.startDrag(false,0,0,0,Stage.height-this._height);
	ease.onEnterFrame = update;
	enable = false;
};
scroll_mc.onRelease = scroll_mc.onReleaseOutside=function () {
	scroll_mc.stopDrag();
	enable = true;
};
var mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
	scroll_mc._y = scroll_mc._y-delta*3;
	if (scroll_mc._y<0) {
		scroll_mc._y = 0;
	}
	if (scroll_mc._y+scroll_mc._height>Stage.height) {

		scroll_mc._y = Stage.height-scroll_mc._height;
	}
	ease.onEnterFrame = update;
};
Mouse.addListener(mouseListener);
_root.setStage();

 

Está fica na timeline principal, é para redimencionar o palco, sem isso não tem efeito nenhum o scroll, já que meu conteúdve ou de XML ou consulta ao Banco.

function setStage(valor) {
	var _loc1 = Stage.width;
	var _loc2 = Stage.height;
	container_mc.bg_mc._height = container_mc._height;
	container_mc._y = 0;
	scroller_mc._x = _loc1;
	scroller_mc._y = 1;
	scroller_mc.bg_mc._height = _loc2;
	scroller_mc.updateScroll(container_mc._height+valor);
	container_mc.baseContainer._width = Stage.width-15;
}

 

teria que ver o que essa função faz, para fazer uma que desabilitasse o que ela faz,

 

 

tem como postar ela?

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal seria fazer

 

mc_scroll._visible = 0; ;)

 

Quando mudar de página...

 

E chamar ele caso necessário...

Fazendo comparações

 

If (mc_conteudo._height > x){ mc_scroll._visible = 1}

else mc_scroll._visible = 0;

 

;)

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só não entendi onde colocar esta verificação!

 

Na função setStage(); ?

 

 

O ideal seria fazer

 

mc_scroll._visible = 0; ;)

 

Quando mudar de página...

 

E chamar ele caso necessário...

Fazendo comparações

 

If (mc_conteudo._height > x){ mc_scroll._visible = 1}

else mc_scroll._visible = 0;

 

;)

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente poem na parte de setStage...

 

Ou na função que chama a setStage ;)

 

O ideal é você fazer

 

colocar no _root

 

if(container_mc._height > stage.height) // sei la o valor que você vai usar aqui coloquei do stage caso seja maior que ele usar o scroll...
{
 scroller_mc._visible = 1; // pode colocar aqui ou lá dentro da função você quem sabe 
 _root.setStage();
}
else
{
 scroller_mc._visible = 0;
}

E é por ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah entendi, mas eu já havia feito algo parecido,ma não resolve porque meu problema não é estar ou não visível a barra do scroll e sim ele fazer a rolagem, uma vez feita a rolagem todas as páginas vão ter só que o scroll fica invisível já, quando há conteúdo novamente para dar rolagem no navegador ele fica visível quando não tem conteúdo some mas a rolagem permanece, entendeu agora?

 

 

exatamente poem na parte de setStage...

 

Ou na função que chama a setStage ;)

 

O ideal é você fazer

 

colocar no _root

 

if(container_mc._height > stage.height) // sei la o valor que você vai usar aqui coloquei do stage caso seja maior que ele usar o scroll...
{
 scroller_mc._visible = 1; // pode colocar aqui ou lá dentro da função você quem sabe 
 _root.setStage();
}
else
{
 scroller_mc._visible = 0;
}

E é por ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais um detalhe, nem todas as páginas executo a função setStage(); fiz isto na esperança de funcionar mas acontece o mesmo.

 

Ah entendi, mas eu já havia feito algo parecido,ma não resolve porque meu problema não é estar ou não visível a barra do scroll e sim ele fazer a rolagem, uma vez feita a rolagem todas as páginas vão ter só que o scroll fica invisível já, quando há conteúdo novamente para dar rolagem no navegador ele fica visível quando não tem conteúdo some mas a rolagem permanece, entendeu agora?

 

 

exatamente poem na parte de setStage...

 

Ou na função que chama a setStage ;)

 

O ideal é você fazer

 

colocar no _root

 

if(container_mc._height > stage.height) // sei la o valor que você vai usar aqui coloquei do stage caso seja maior que ele usar o scroll...
{
 scroller_mc._visible = 1; // pode colocar aqui ou lá dentro da função você quem sabe 
 _root.setStage();
}
else
{
 scroller_mc._visible = 0;
}

E é por ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom ...

 

Como não tenho o fla completo para efetuar testes e tentar descobrir o que se passa...

só pelo que você ta falando...

Sempre existe a função delete.

 

delete _root.scroller_mc; todo frame... e pronto... teoricamente você vai deletar o scroller...

 

mais sei la acho que tbm não vai funcionar..

tente remover simplesmente o child do flash.. removeChild(scroller_mc)

 

Não se tem muitas opções...

Remover função não dá...

da pra fazer ela parar de funcionar com break

 

if(balbalbala)

break

else

blablablabla

 

O negócio é ir no help...

E tentativa e erro mesmo =(

 

Se quiser posta o fla ai que com certeza a galera da uma solução

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma duvida que tive sobre o problema, quando você fala "a barra de scroll desaparece mas o scroll funciona"

 

quer dizer que o tamanho da tela continua grande, por causa do conteúdo anterior, mas ela permanece no mesmo lugar

então você só quer diminuir a tela para se adequar ao novo conteúdo

 

ou

 

que a pagina dese e sobe(com a rodinha do mouse já que a barra some) mesmo não tendo conteúdo na parte de baixo?

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma duvida que tive sobre o problema, quando você fala "a barra de scroll desaparece mas o scroll funciona"

 

quer dizer que o tamanho da tela continua grande, por causa do conteúdo anterior, mas ela permanece no mesmo lugar

então você só quer diminuir a tela para se adequar ao novo conteúdo

 

ou

 

que a pagina dese e sobe(com a rodinha do mouse já que a barra some) mesmo não tendo conteúdo na parte de baixo?

 

 

 

[]´s

exatamente isto: na verdade as 2 opções que você deu acontece.

que a pagina dese e sobe(com a rodinha do mouse já que a barra some) mesmo não tendo conteúdo na parte de baixo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema com a rodinha, para desativar, você criaria essa função dentro do scroll, junto com as que você postou lá em cima

 

 

 

function desativaScroll(){

 

Mouse.removeListener(mouseListener);

 

}

 

agora o tamanho, teria que chamar a setStage mesmo, pelo que vi ela recebe um paramentro, tente passar o valor zero para ver

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido, usei o que você disse com do berseck e criei uma função, problema resolvido.

 

onEnterFrame = function () {

if (_root.container_mc._height<Stage.height) {

Mouse.removeListener(mouseListener);

_root.scroller_mc._visible = 0;

} else {

Mouse.addListener(mouseListener);

_root.scroller_mc._visible = 1;

}

};

 

 

Abraço.

 

 

o problema com a rodinha, para desativar, você criaria essa função dentro do scroll, junto com as que você postou lá em cima

 

 

 

function desativaScroll(){

 

Mouse.removeListener(mouseListener);

 

}

 

agora o tamanho, teria que chamar a setStage mesmo, pelo que vi ela recebe um paramentro, tente passar o valor zero para ver

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.