MarKteus 1 Denunciar post Postado Agosto 25, 2007 Boa noite turma Gente seguinte to usando o script abaixo para criar uma caixa de texto dinamica: _root.createTextField(“conTexto”, n_Tx, 200, 200, 200, 100); conTexto.border = true; conTexto.text = “Digite seu texto aqui”; formatacao = new TextFormat(); formatacao.bold = true; formatacao.size = 25; formatacao.font = “verdana”; formatacao.italic = true; conTexto.setTextFormat(formatacao); até aí tudo bem, só q qdo vou criar outro ñ da mais certo pois estou em tempo de execução, então fiz o seguinte na linha q cria: _root.createTextField(“conTexto”+n_Tx, n_Tx, 200, 200, 200, 100); Mas o simples fato de colocar uma variável para diferenciar as instacias, atrapalha tudo, não da erro porém, ñ é possível ver a frase DIGITE SEU TEXTO AQUI tentei tbm: _root.createTextField(“conTexto”+String(n_Tx), n_Tx, 200, 200, 200, 100); e nada, só funciona se eu deixar como na primeira _root.createTextField(“conTexto”, n_Tx, 200, 200, 200, 100); </b>só q assim ao criar outra caixa o texto da anterior desaparece (mesmo concatenando a profundidade. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 27, 2007 como você está está fazendo a implementação do restante do código ? o primeiro é esse certo ? _root.createTextField(“conTexto”, n_Tx, 200, 200, 200, 100); conTexto.border = true; conTexto.text = “Digite seu texto aqui”; formatacao = new TextFormat(); formatacao.bold = true; formatacao.size = 25; formatacao.font = “verdana”; formatacao.italic = true; conTexto.setTextFormat(formatacao);está funcionando, como você mencionou. para criar outro campo você está usando uma concatenação para diferenciar o nome de instância _root.createTextField(“conTexto”+n_Tx, n_Tx, 200, 200, 200, 100);nesse momento o objeto é criado. Mas o simples fato de colocar uma variável para diferenciar as instacias, atrapalha tudo, não da erro porém, ñ é possível ver a frase DIGITE SEU TEXTO AQUI como você está fazendo a atribuição do restante do código ?assim ? _root.createTextField(“conTexto” + n_Tx, n_Tx, 200, 200, 200, 100); conTexto.border = true; conTexto.text = “Digite seu texto aqui”; formatacao = new TextFormat(); formatacao.bold = true; formatacao.size = 25; formatacao.font = “verdana”; formatacao.italic = true; conTexto.setTextFormat(formatacao); observe os pontos em negrito Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 27, 2007 vai uma dica as funções que criam um objeto na tela, como createEmptyMovieCLip e duplicateMovieCLip, etc sempre retornam a referencia do objeto ao cria-lo, altere o codigo para funcionar assim: caixa = _root.createTextField("conTexto"+n_Tx, n_Tx, 200, 200, 200, 100); caixa.border = true;caixa.text = "Digite seu texto aqui"; caixa é uma variavel que guarda a referencia desse objeto Compartilhar este post Link para o post Compartilhar em outros sites
MarKteus 1 Denunciar post Postado Agosto 27, 2007 Hinom O q eu disse foi o seguinte: testei de um jeito, depois testei outro e depois de outro jeito, mas somente um funciona, porém usando a forma q funciona, consigo criar apenas uma caixa de texto e depois ñ consigo criar mais, pois dentro da função createTextField(), não está aceitando variável. ou seja, exemplo: clico num botão uma caixa de texto é criada: createTextField("Ctexto", 1, 100,100,200,220); clicando de novo o ideal para a criação de outra caixa texto, seria eu usar no script assim: createTextField("Ctexto"+id, id, _xmouse, _ymouse, _xmouse+100, _ymouse+110) Mas pelos meus testes ñ funciona, ou seja, na hora do instaciamento createTextField("Ctexto", 1, 100,100,200,220); se eu colocar a variável id, já não funcionará, sei lá pq, a função se perde e ñ cria nada, ou cria mas ñ consigo visualizar e ñ colocando só consigo criar uma caixa de texto com o nome de Ctexto. A idéia é criar quantas eu precisar para isso os nomes devem ser diferentes (Ctexto1, Ctexto2, etc) por isso preciso usar variáveis q vão se incrementando id++, só q quando a função createTextField encontra em seu interior "Ctexto"+id, ñ cria nada. "Ctexto"+String(id) tbm ñ funciona. Caso eu incremente fora da função: NomeDoCampo="Ctexto"+id; ou NomeDoCampo="CTexto"+String(id); _root.createTextField(NomeDoCampo, id, _xmouse, _ymouse, _xmouse+100, _ymouse+110); tbm ñ da certo, fazendo vários testes percebi q o erro mesmo só no q diz respeito ao nome da instancia. ns demais parametros tudo normal. Compartilhar este post Link para o post Compartilhar em outros sites
MarKteus 1 Denunciar post Postado Agosto 27, 2007 vai uma dica as funções que criam um objeto na tela, como createEmptyMovieCLip e duplicateMovieCLip, etc sempre retornam a referencia do objeto ao cria-lo, altere o codigo para funcionar assim: caixa = _root.createTextField("conTexto"+n_Tx, n_Tx, 200, 200, 200, 100); caixa.border = true;caixa.text = "Digite seu texto aqui"; caixa é uma variavel que guarda a referencia desse objeto Caro Éder Tbm fiz assim como você sugeriu inclusive antes de postar a duvida, mas tbm, ñ funcionou. Porém aproveito pra tirar uma dúvida q referência é essa q você disse q é guardado na variável caixa, seria o caminho do objeto ? só esclarecendo tbm meu Flash é o MX2004 Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 27, 2007 Porém aproveito pra tirar uma dúvida q referência é essa q você disse q é guardado na variável caixa, seria o caminho do objeto ?sim é o endereço deleo problema deve ser a variavel n_Tx, dá um trace nela dentro da função pra ver se ela esta como undefined Compartilhar este post Link para o post Compartilhar em outros sites
MarKteus 1 Denunciar post Postado Agosto 28, 2007 Porém aproveito pra tirar uma dúvida q referência é essa q você disse q é guardado na variável caixa, seria o caminho do objeto ?sim é o endereço dele o problema deve ser a variavel n_Tx, dá um trace nela dentro da função pra ver se ela esta como undefined Já tinha até feito este teste. Com a variável está tudo normal, na primeira vez contem o numero 0, na segunda o numero e assim por diante. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 29, 2007 Markteus, está complicado encontrar o problema. a hipótese mais provavel é que você esteja fazendo algo errado. faça um teste simples. Crie um arquivo novo no Flash pra testar esse script: stop();raiz = _root;txt_limit = 3;txt_insName = "conTexto";txt_text = "Digite seu texto aqui";txt_ttfFont = "verdana";txt_FontSiz = 15;txt_width = 200;txt_height = 20;txt_x = 0;txt_y = 0;txt_space = 5;for( i = 0; i < txt_limit; i++ ){ obj_name = txt_insName + i; txt_y = ( txt_height * i ) + txt_space; raiz.createTextField(obj_name, i, txt_x, txt_y, txt_width, txt_height); obj = raiz[obj_name]; obj.border = true; obj.text = txt_text + i; style = new TextFormat(); style.bold = true; style.size = txt_FontSiz; style.font = txt_ttfFont; style.italic = true; obj.setTextFormat(style); } se tiver alguma dúvida sobre o uso do createTextField, consulte a documentação: http://www.adobe.com/support/flash/action_...tionary513.html Compartilhar este post Link para o post Compartilhar em outros sites