segunda-feira, maio 28, 2007

Typewriter


function typeWriter(timeWriter:Number){
//criamos uma nova variável para chamar o xml
var oXML:XML = new XML();
//a variável world é para fechar o setInterval
var world:Number = 0
//ignoramos os espaços em branco do xml
oXML.ignoreWhite = true;
//começa a carregar o xml
oXML.onLoad = function():Void{
//define uma variável para ler o primeiro nó do xml
var rootNode:XMLNode = this.firstChild;
//no contador abaixo, passamos a variável por todos os nós internos
for(var i = 0; i < rootNode.childNodes.length; i++){
//lê os nós internos
var nodeDados:XMLNode = rootNode.childNodes[i];
//contamos os itens dentro desa vairável
for(var n = 0; n < nodeDados.childNodes.length; n++){
//lemos o atributo 'cdata' dos xmls
var nodeValue:String = nodeDados.childNodes[n].nodeValue;
//esse intervalo é o responsável pelo tempo da digitação
var textWriterInterval = setInterval(function(){
//incrementa a variável
world++
/*
aqui está o truque. Com o substr, pegamos o index zero do campos de texto e inserimos
uma letra nele, escolhida pela variável world
*/
text_txt.htmlText = nodeValue.substr(0, world) ; //nome do campo de texto
//o if abaixo fecha o intervalo para evitar consumo desnecessário de memória
if(world == nodeValue.length){
clearInterval(textWriterInterval)
}
},timeWriter)
}
}
}
//não importa o quanto de texto entre, o campo de texto se ajusta a ele
text_txt.autoSize = true;
//carrega o arquivo xml
oXML.load("texte2.xml");
}
box_mc.onPress = function(){
typeWriter(45)
}


É um efeito simples e usável
De qualquer maneira, ele está usando xml, mas no lugar dele você poderia usar um txt ou mesmo uma variável dentro do campo de texto.

Arquivo de exemplo:
aqui

Vc vai precisar do winrar para abrir o documento compatado
(agradecimentos à nayara)

Nenhum comentário: