Ir para conteúdo

POWERED BY:

Arquivado

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

Lexotan6mg

[Resolvido] Classe UIScrollBar [AS2]

Recommended Posts

Oi, pessoal!

 

Procurei algum tópico relacionado aqui no fórum mas como não encontrei, resolvi postar.

No código abaixo eu tento criar uma instância do componente UIScrollBar que está na Library atrelado ao TextField também criado via código, mas não sei porquê não funciona. Alguém pode ajudar?

 

Abraços a todos!

 

mc.createTextField("my_txt",mc.getNextHighestDepth(),10,10,260,280);
mc.my_txt.html = true;
mc.my_txt.wordWrap = true;
mc.my_txt.multiline = true;
var loadTxt:XML = new XML();
loadTxt.load("homeText.xml");
loadTxt.ignoreWhite = true;
System.useCodepage = true;
var i=0;
loadTxt.onload = function(){
     mc.my_txt.text = loadTxt.firstChild.firstChild.childNodes;
     // AQUI COMEÇA A FUNÇÃO UISCROLLBAR
     mc.my_txt.createClassObject(mx.controls.UIScrollBar,"vScroll",mc.my_t xt.getNextHighestDepth());
     mc.my_txt.vScroll.setScrollTarget(mc.my_txt);
     mc.my_txt.vScroll.setSize(10, mc.my_txt._height);
     mc.my_txt.vScroll.move(mc.my_txt._x + mc.my_txt._width, mc.my_txt._y);
     mc.my_txt.vScroll.lineScrollSize = 2;
     mc.my_txt.vScroll.pageScrollSize = 5; 

     my_txtFormat = new TextFormat();
     my_txtFormat.size = 11;
     my_txtFormat.font = "Verdana";
     my_txtFormat.color= 0x000000;
     mc.my_txt.setTextFormat(my_txtFormat);

};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta tentando criar um object dentro de uma caixa de texto :P

 

Não é assim que isso funciona :)

 

O correto é assim:

import mx.controls.UIScrollBar;

var tf:TextField = _root.createTextField("tf", 1, 20, 20, 200, 200);
tf.wordWrap = true;

var sui:UIScrollBar = _root.createClassObject(mx.controls.UIScrollBar, sui, 2);
tf.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet odio blandit elit molestie vulputate. Aliquam vel dolor purus. Mauris ac risus congue ipsum accumsan commodo in eu massa. Phasellus nulla mauris, pellentesque non sodales a, fringilla varius nisl. Pellentesque massa erat, adipiscing ac lacinia sed, vehicula commodo nunc. Maecenas vel placerat lacus. Curabitur auctor, sapien id vestibulum placerat, enim massa consectetur leo, sit amet convallis orci lacus eu lacus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas pellentesque vestibulum nibh ut vestibulum. Cras dignissim tempus nulla a ultrices. Mauris pretium sodales sem, non auctor nulla fermentum vitae. Mauris congue massa nec enim egestas ut mollis arcu tincidunt. Quisque ante ipsum, bibendum id vulputate sed, fringilla nec tortor.";

sui.setScrollTarget(tf);
sui.setSize(10,200);
sui._x = 220;
sui._y = 20;

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta tentando criar um object dentro de uma caixa de texto :P

Não é assim que isso funciona :)

 

Muito obrigado pela ajuda! Realmente, meu erro era criar um object DENTRO do TextField. Agora criei o object no _root e funcionou, inclusive buscando o texto de um XML externo. Vou colocar o código COMPLETO e corrigido abaixo para consulta, espero que ajude a outros! =)

 

buttom_btn.onRelease=function(){
        //desenhando dinamicamente o BOX01
        _root.createEmptyMovieClip("box01",_root.getNextHighestDepth());
        box01.lineStyle(1, 0xCCCCCC); //definido contorno 1px, cinza
        box01.beginFill(0xFFFFFF,70); //definindo preenchimento branco com opacidade de 70%
        box01.moveTo(0, 0); //definindo 0 X e Y do ponto de registro
        box01.lineTo(280,0); //definindo o X e Y da primeira linha horizontal em relação ao ponto de registro
        box01.lineTo(280,300); //definindo o X e Y da primeira linha vertical em relação ao ponto de registro
        box01.lineTo(0,300); //definindo o X e Y da segunda linha vertical em relação ao ponto de registro
        box01.endFill(); //fechando o polígono
        box01._x =120; //definindo a posição X onde o polígono tem de aparecer
        box01._y = 190; //definindo a posição y onde o polígono tem de aparecer
        box01._alpha=0; //definindo o alpha=0
        var box01Alfa:Tween = new Tween(box01,"_alpha",Regular.easeOut,0,100,1,true); //efeito alpha 0 para 100
        // criando dinamicamente o campo de texto
        box01.createTextField("tf",box01.getNextHighestDepth(),10,10,260,280); //cria o campo de texto vazio
        box01.tf.html = true; //renderiza como HTML
        box01.tf.wordWrap = true; //coloca as quebras de linha necessárias
        box01.tf.multiline = true; //define o campo com múltiplas linhas
        // busca o texto no arquivo XML externo
        var loadTexto:XML = new XML(); // declara a variavel para ler o XML
        loadTexto.load("texto.xml"); // lê o xml
        loadTexto.ignoreWhite = true; // ignora espaços em brancos no xml
        System.useCodepage = true; // habilita acentos
        var i=0; // declara valor inicial da variavel igual a 0
        // ao carregar o XML, pegar as informações
        loadTexto.onLoad = function(){
                box01.titEmpresa.text = loadTexto.firstChild.firstChild.childNodes;
                //cria a barra de rolagem vertical
                _root.createClassObject(mx.controls.UIScrollBar,"vScroll",2);
                vScroll.setScrollTarget(box01.tf); // Define o campo de texto a ser atachado
                vScroll.setSize(10, box01._height);// Define o tamanho para ajustar ao box que contém o texto
                vScroll.move(box01._x + box01._width, box01._y); //Move a barra para ficar no lado direito do box
                vScroll.lineScrollSize = 2; // Rola 2 linhas por clique no botão da barra de rolagem
                vScroll.pageScrollSize = 5;// Rola 5 linhas por clique na barra em si
                // formatando o texto
                tfFormat = new TextFormat(); //criando uma formatação para o texto
                tfFormat.size = 11; //definindo tamanho do texto
                tf.font = "Verdana"; //definindo a fonte
                tf.color= 0x000000; //definindo a cor do texto
                box01.tf.setTextFormat(tfFormat); //aplicando a formatação ao campo de texto
        };

Surgiu uma outra dúvida no processo, mas acho coerente colocá-la em um tópico à parte. Valeu! o/

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.