Autor Tópico: criar textField  (Lida 5469 vezes)

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
criar textField
« em: 15 de Março de 2007, 18:08:51 »
É o seguinte:

Eu quero criar um campo de texto dinâmico, mas como à partida não sei a sua localização e quantos necessito tenho a fonte library com um linkage ID.

Até agora o código que tenho.
Código: [Seleccione]
var _textfmt1:TextFormat = new TextFormat();
_textfmt1.font = "Font 1";
_textfmt1.color = 0x00A6D6;

var tempText:TextField = this.createTextField("titulo", this.getNextHighestDepth(), 0, 0, 65.0, 28);

tempText.setTextFormat(_textfmt1);
tempText.embedFonts = true;
tempText.text = "ABCD";


Mas isto ñ funciona, ele cria o textField mas ñ vejo nada. :?

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
criar textField
« Responder #1 em: 15 de Março de 2007, 19:11:13 »
Parece que só se pode atribuir o textFormat depois de ter colocado lá texto.
Agora definir o mapa de caracteres a embeber ñ sei se dará para fazer.

Código: [Seleccione]
tempText.text = "ABCD";
tempText.embedFonts = true;
tempText.setTextFormat(_textfmt1);

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
criar textField
« Responder #2 em: 15 de Março de 2007, 22:29:25 »
hello yarcub espero que esteja tudo bem :)
o problema esta em dois sitios 1 ja encontrastes o outro é  na referencia do textField acho eu porque ao criares o textField ele não retorna nada.

Código: [Seleccione]

var _textfmt1:TextFormat = new TextFormat();
_textfmt1.font = "Font 1";
_textfmt1.color = 0x00A6D6;
//
this.createTextField("titulo", this.getNextHighestDepth(), 0, 0, 65, 28);
var tempText:TextField = titulo;
trace(tempText)
tempText.embedFonts = true;
tempText.text = "ABCD";
tempText.setTextFormat(_textfmt1);

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
criar textField
« Responder #3 em: 16 de Março de 2007, 01:39:25 »
Heyas,

mas que guerra que ai vai.

Código: [Seleccione]

var _textfmt1:TextFormat = new TextFormat();
_textfmt1.font = "Font 1";
_textfmt1.color = 0x00A6D6;
this.createTextField("titulo", this.getNextHighestDepth(), 0, 0, 65.0, 28);
titulo.embedFonts = true;
titulo.text = "ABCD";
titulo.setTextFormat(_textfmt1);


Os nomes de instância servem para alguma coisa, certo?

Depois, recordo que se utilizarem o atributo "embedFonts" com o valor de "true", entao só conseguem visualizar o texto CASO tenham o tipo de letra na library com Linkage Name atribuido.

Para testarem isso sem terem a fonte, basta comentar a linha que refere o "embedFonts".

Mas a guerra q esta a ocorrer resolve-se ao chamarem as coisas pelo nome delas, ou seja, Instance Name.

Bom trabalho
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

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

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
criar textField
« Responder #4 em: 16 de Março de 2007, 02:08:55 »
Obg malta por terem respondido, mas já tinha resolvido o meu problema como tinha dito atrás.

Acabei por passar ao plano B.
Tenho na library um movieclip com um textField criado no IDE, depois faço o attach e atribuo-lhe o texto.

Citação de: "alftuga"
(...)o outro é na referencia do textField acho eu porque ao criares o textField ele não retorna nada.

Retorna-te o instance name.
Estava a usar esse tempText pq o passo seguinte era implementar num ciclo for.

Citação de: "Grettir"
Depois, recordo que se utilizarem o atributo "embedFonts" com o valor de "true", entao só conseguem visualizar o texto CASO tenham o tipo de letra na library com Linkage Name atribuido.

Era o caso, mas o problema ñ era esse.
Eu já o tinha explicado em cima.
O problema é que só podes aplicar o TextFormat depois de atribuires o texto.

Quanto à outra questao:
Citação de: "yarcub"
Agora definir o mapa de caracteres a embeber ñ sei se dará para fazer.

Lembrei-me agora que se eu já tenho a font na library em principio todo o set de caracteres dela está disponível e ñ é necessário estar a especificar quais.
Com a pressa nem me lembrei de experimentar. :)

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
criar textField
« Responder #5 em: 16 de Março de 2007, 11:43:17 »
Citação de: "Grettir"
Heyas,

mas que guerra que ai vai.

Os nomes de instância servem para alguma coisa, certo?

Mas a guerra q esta a ocorrer resolve-se ao chamarem as coisas pelo nome delas, ou seja, Instance Name.


Bem eu não sabia que estava em guerra eu só estava a tentar ajudar.

Gretir acredita nunca pretendi entrar em guerra mas se tu dizes isso é que deves ter as tuas razões e peço desculpa se ofendi alguém nunca foi a minha intenção.

E se foi entendido assim então não sei o que dizer foi mesmo uma questão de crer ajudar o yarcub.

mas sinceramente acho bem melhor criar referencias dos instance names.

digo mais o as3 vai nesse caminho...

mas o dizer isso não quero criar uma guerra em nenhum caso!
o objectivo da minha presença neste fórum não é ser troll ou coisa parecida.
É poder estar a falar de uma ferramenta que eu gosto bastante partilhar conhecimento,ajudar e ser ajudado.

abraços.

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
criar textField
« Responder #6 em: 16 de Março de 2007, 15:11:42 »
Oi alftuga.

Quando o Grettir diz "que guerra para aqui vai" ñ era entre nós, mas sim com o código.  :D
É como dizer:
-"Que grande confusão vocês estão a fazer."

Mas eu até nem acho que tivesse muito longe, era só mesmo a questão de aplicar o TextFormat depois do texto.

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
criar textField
« Responder #7 em: 16 de Março de 2007, 16:01:50 »
Heyas,

Alftuga, nao me referia a isso rapaz. Relax :D

"Que guerra que ai vai" é uma mera expressao do tipo "que confusao que a malta esta a fazer" ou outra expressao do tipo.

Abraço "Swebiano" a todos os intervenientes ;) eheh
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

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

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
criar textField
« Responder #8 em: 16 de Março de 2007, 21:51:30 »
:oops:  desculpem o meu português... sempre a mesma m...a :(  :(
fico contente porque não estava a entender o que tinha feito lol

tenho que corrigir uma coisa:
createTextField so retorna o instance name com o flash 8 eu tava a testar isso com o flash mx2004 na escola :)

agora a questão das referencias e dos instance names acredita Grettir
são as referencias as mais importantes.
Os instance names é uma questão de user friendly...
repara este código estou a utilizar o mesmo instance name e funciona tudo bem ;)
 
Código: [Seleccione]

var r:MovieClip = this;
var m:MovieClip = r.attachMovie("t", "t", r.getNextHighestDepth());
m._x = 0;
m.onRelease = function() {
trace("bt1");
};
var m:MovieClip = r.attachMovie("t", "t", r.getNextHighestDepth());
m._x = 50;
m.onRelease = function() {
trace("bt2");
};


O flash gera o z-sorting com os níveis pouco importa então o instance names que das.
O problema acontece que ele não gera da mesma maneira quando tu crias movies manualmente no stage.
Ai sim tens mesmo que dar instance names diferentes.
Mas se é via codigo pouco importa os instance names.

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
criar textField
« Responder #9 em: 17 de Março de 2007, 00:34:18 »
Heyas,

eu sei disso, mas nao consigo perceber como é que, o facto de teres vários "objectos" no codigo com a mesma referencia, te poderá ser util ?!?

A meu ver, por experiencia propria, apos ter realizado vários projectos e me é pedido para mexer num "antigo", é-me mais facil (rapido) ler as coisas com nomes diferentes.

Recorro a referencias noutras situaçoes, em que me é mais facil para reutilizaçao de codigo, mas nunca para colocar 2 objectos com a mesma referencia.

(Mas tb acho que nao é isso que estas a dizer,certo?)

Algo que o pessoal menospreza por vezes é que no Mercado de Trabalho nem sempre é possivel respeitar as regras, pois o q interessa é que fique feito dentro dos prazos definidos (pois tempo é dinheiro) e que funcione (pois assim temos o cliente contente).

Se é a politica correcta?

Na optica de um professor, é a errada pois convem ensinar as regras, mas na optica de trabalhador é "certinho direitinho".

----

O teu portugues é bom, so te falta apanhar as girias (o calão já o deves saber todo tambem :P)

Grande abraço
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

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

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
criar textField
« Responder #10 em: 17 de Março de 2007, 03:14:17 »
Citação de: "alftuga"
desculpem o meu português... sempre a mesma m...a

O teu português está no ponto, algumas expressões é que às vezes significam outro contexto.
Toma ai uma resma de expressões populares, faz uma meta de usar uma por dia. ehehe :D

--------------------------------------------------------------------------

Voltando ao tema do tópico, as situações onde uso sempre as referências são quando adiciono/removo movieclips dinamicamente, em classes, ou quando quero escrever a path em notação array. Acho que até ajuda na leitura do código.
ex:
Código: [Seleccione]
mc = this.menu;
for(...){
 mc["submenu"+i]._x = (...)
}


Acho que fazer referencia ao próprio scope ñ faz muito sentido se este for por exemplo o stage, ou para coisas simples.
Código: [Seleccione]
var r:MovieClip = this;
var m:MovieClip = r.attachMovie("t", "t", r.getNextHighestDepth());

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
criar textField
« Responder #11 em: 21 de Março de 2007, 12:57:47 »
é uma questão de habito...
e é verdade que 80% de codigo meu é para classes dai eu ter apanhado esse vicio das referencias.
e sobretudo utilizo isso para não ter problemas de scoop.
mas se voçés dizem que não é boa coisa eu vou analizar melhor o que faço.

repara que o passares uma referencia em vez de utilizares a palavra this
rapidamente podes mandar a criação desse text field para dentro de um movieclip

mas repito devo ser eu que estou enganado...

Offline Grettir

  • Aprendiz
  • **
  • Mensagens: 284
    • Ver Perfil
criar textField
« Responder #12 em: 21 de Março de 2007, 13:44:58 »
Heyas,

Alftuga, nao estas enganado. Eu tb utilizo referencias, e bastantes, dentro de Classes, ciclos FOR, etc...

Quando disse o que disse sobre as referencias, falava sobre o exemplo especifico, pois estava só a pensar nas poucas linhas que se tinham escrito, sem pensar que podesse estar a ser utilizado com mais codigo.

Em suma, aconselho a utilizaçao de referencias (tal como vem nos livros).

Peço desculpa pela confusao que possa ter ajudado a gerar :P eheh
----------------------------------
Ricardo Castelhano aka Grettir

Adobe Certified Professional
Interactive Designer
Flash Developer
PHP Developer

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

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
criar textField
« Responder #13 em: 21 de Março de 2007, 16:12:41 »
Gretir obrigado a ti!
é com estas conversas que avançamos se ficamos calados ai é que a informação não circula.

 




Roleta das Anedotas - Abre noutra janela