Ir para conteúdo

POWERED BY:

Arquivado

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

batisteli

[Resolvido] Componemt ScrollBar desaparece após 1º acesso

Recommended Posts

Olá todos!

Pecisava de ajuda com o seguite problema: Tenho um campo de texto dinamico que carrega um arquivo txt. A este campo associei uma instancia do componente UIScrollBar. Quando publico o filme a barra de rolagem aparece e funciona normalmente porém, apenas uma vez. Se navego para outra parte do filme quando volto a barra de rolagem vira um pequeno retangulo no topo do campo e a rolagem do texto deixa de ser possível.

 

agradeço desde já a quem me puder auxiliar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chame o carregamento do componente novamente.

 

E resolve isso.

 

abraços

Ola berseck

Quando dizes "chame o carregamento do componente novamente" é fazer um LoadMovie, por exemplo?

 

tks!

Ps: a pergunta pode parecer obvia mas, é que quando digo que sou iniciante é que sou mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim por exemplo:

var loader:LoadVars = new LoadVars();

loader.load("texto.txt");

loader.onLoad = function(ok){
	if(ok){
		my_text.text = loader.texto;
	} else {
		my_text.text = "erro ao carregar o texto";
	}
}
this.createClassObject(mx.controls.UIScrollBar, "scroller", 20);
scroller.enabled = true;
scroller.setScrollTarget(my_text);

Coloca esse código no frame que ta o scroll

 

scroller = UIScrollBar

my_text = campo de texto dinamico

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá berseck,

Obrigado pela ajuda, mas tentei utilizar o script que sugeriu e o scroll não é criado adequadamente (não aparecem os botões nem a barra de rolagem) e também ocorre um erro de sintax no codigo a ser inserido no frame onde está o UIScroll.

Estou a utlizar a seguinte condição: Um botão que está no frame 6 executa o script abaixo e o scroll funciona na primeira vez e depois some parcialmente conforme expliquei no primeiro post. Se me puder ajudar um pouco mais agradeço é que agora já estou a ficar sem tempo para entregar o trabalho.

 

on (press, release) {

gotoAndStop(8);

setProperty("lt_esq", _alpha, "80");

 

var my_txt1_lv:LoadVars = new LoadVars();

my_txt1_lv.onData = function (src:String):Void {

if (src != undefined) {

my_txt1.text = src;

} else {

my_txt1.text = "Unable to load external file.";

}

}

my_txt1_lv.load("cond_ger.txt");

}

 

Ps: Com esta ajuda já está garantido o bacalhau, o vinho e um tour por Lisboa, que é onde moro, se algum dia vier por cá. Tks!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom primeiramente vamos esquecer que existe on(press, release, rollOver) ok???

 

E vamos fazer assim:

1)Clique sobre o botão que você quer fazer a ação.

2)Selecione a parte de propriedades, e no campo de instancia de um nome ao botão no meu caso vou chamar de botao apenas.

3)Depois de intanciado o botão. Vá na parte componentes e pege o componente UIScrollBar.

4)Crie um campo de texto dynamic text, e instancie como texto

5)Coloque o UIScrollBar colado no campo de texto.

6)Crie uma camada chamada actions, faça com que os frames dessa camada seja por toda a animação ou frames utilizados no flash.

6)Agora vamos ao código, clique no primeiro frame da camada actions e escreva:

botao.onPress = function(){
var loader:LoadVars = new LoadVars();
loader.load("texto.txt");
loader.onLoad = function(ok){
	if(ok){
		texto.text = loader.texto;
	} else {
		texto.text = "erro ao carregar o texto";
	}
}
_root.createClassObject(mx.controls.UIScrollBar, "scroller", 20);
scroller.enabled = true;
scroller.setScrollTarget(texto);
};

E pronto agora você tem um botão com ação dinamica :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom primeiramente vamos esquecer que existe on(press, release, rollOver) ok???

 

E vamos fazer assim:

1)Clique sobre o botão que você quer fazer a ação.

2)Selecione a parte de propriedades, e no campo de instancia de um nome ao botão no meu caso vou chamar de botao apenas.

3)Depois de intanciado o botão. Vá na parte componentes e pege o componente UIScrollBar.

4)Crie um campo de texto dynamic text, e instancie como texto

5)Coloque o UIScrollBar colado no campo de texto.

6)Crie uma camada chamada actions, faça com que os frames dessa camada seja por toda a animação ou frames utilizados no flash.

6)Agora vamos ao código, clique no primeiro frame da camada actions e escreva:

botao.onPress = function(){
var loader:LoadVars = new LoadVars();
loader.load("texto.txt");
loader.onLoad = function(ok){
	if(ok){
		texto.text = loader.texto;
	} else {
		texto.text = "erro ao carregar o texto";
	}
}
_root.createClassObject(mx.controls.UIScrollBar, "scroller", 20);
scroller.enabled = true;
scroller.setScrollTarget(texto);
};

E pronto agora você tem um botão com ação dinamica :)

 

Abraços

Voltei :(

 

Quase funcionou.

O Scroll agora não desaparece entretanto está incompleto, não aparecem os botões nem a barra de movimento. E onde deveria carregar o texto aparece _Level0.texto

 

Onde é que estou a errar??

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está colocando no campo de texto a opção variable ao invés da instancia!!!

 

A instancia fica bem a baixo da opção de static, dynamic ou input...... apague o que ta no campo de variable

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá berseck,

Quanto ao _level0, ok. De facto o campo de texto dinamico tinha uma variavel definida, rtirei-a e o filme funciona. Entretanto o texto não carrega e a o Scroll segue sem apresentar a barra de rolagem e os botões. Já verifiquei todas as possibilidades mas não dei pelo problema. Será que o facto de eu estar a usar o flash cs3 definido para utilizar o AS2 pode estar a causar o problema? No botão que leva o utlizador ao frame onde ele poderá ler o texto tenho duas acções: gotoplay e setproperty de um movie clip lá presente. Isto pode estar a provocar o probelma?

Novamente obrigado por tua paciencia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem nada a ver um com o outro.

 

Você pode usar CS4 com as2 que não vai dar problema.

 

Você esta chamando o texto como eu disse???

 

Como está seu código depois das alterações poderia mostrar?

 

texto se chama com intancia assim instancia.text

Onde a instancia é o nome da instancia que você deu ao seu campo de texto.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código. Fiz o seguinte checklist:

» O codigo abaixo está no primeiro frame do filme e também está disponivel por todos os frames através de keyframe

» O campo de texto dinamico está instanciado como "texto"

» O campo vars da propriedade do campo de textodinamico está vazio

» Existe um arquivo chamado "texto" com a extensão .txt em UTF8 na mesma diretoria onde está o filme

» O UIScroll está presente no campo texto dinamico

» O botão que dá acesso ao frame onde se encontra o campo de texto dinamico está instaciado como "botao"

» O test movie (crtl+enter) não produz mensagens de erro

» A UIScrool está presente em toda a nevegação

 

 

stop();

botao.onPress = function(){

var loader:LoadVars = new LoadVars();

loader.load("texto.txt");

loader.onLoad = function(ok){

if(ok){

texto.text = loader.texto;

} else {

texto.text = "erro ao carregar o texto";

}

}

_root.createClassObject(mx.controls.UIScrollBar, "scroller", 20);

scroller.enabled = true;

scroller.setScrollTarget(texto);

};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá berseck,

Depois de apanhar muito acabei descobrindo que, pelo menos no meu FLA, tanto o script quanto o botão que o aciona têm de estar no mesmo frame. Depois também te esquecestes de dizer-me que na primeira linha do texto a ser carregado deveria ter a identificação da variável "&texto", se é que não estou em erro chamar isto de identificador. Estas duas modificações resolveram o carregamento do texto e a presença do UIScroll por todo o filme. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Porém agora tenho um pequeno bug :( que não consegui ainda identificar o que o produz. Quando clico no botão que carrega o texto aparece no canto superior esquerdo um pequeno retangulo vertical como se fosse um pedaço do UIScroll que fica presente durante todo o filme. Tens alguma idéia do que possa ser? Já agora, o que significa o "20" nos parametros do UIScroll?

TKS!

Até a proxima!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom provavelmente ele ta criando novamente o scroll :)

 

Se você não nomear o scroller que você colocou na tela como scroller o comando que eu dei ali ele cria novamente o scroll xD assim irá ter 2 em sua tela

 

Quanto ao 20 é a profundidade do mesmo em seu arquivo ;) conhecido tbm como depth()

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando me dizias para arrastar para o stage uma instacia do UIScroll fiquei um pouco confuso pois entendia que o script o criava dinamicamente, bastava apenas que ele estivesse presente na library, correto? Descobri isto agora porque retiriei o UIScrool do stage e o script cria o Scroll. Se o instancio com um nome diferente de scroll (como está no script) aparecem dois Scroll e funcionam em conjunto. Fantástico não tinha nenhum e agora posso ter 2 funcioando em simultâneo. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Se não instancio ele fica posicionado no canto superior esquerdo e não attached ao campo de texto dinamico. Mas é curioso que mesmo completamente fora de posição funciona ma mesma. Sabes dizer-me como poderia definir o posicionamento correcto? Ou o attached deveria fazer isto automaticamente?

Tks!

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.