Comunidad de diseño web y desarrollo en internet online

Problemas al llamar a una clase

Citar            
MensajeEscrito el 18 Sep 2014 08:30 pm
Muy buenas gente, hacia tiempo que no pasaba por el foro.
Recientemente he intentado pasarme al AS3, pero estoy teniendo algunas dificultades.
Resulta que estoy necesitando una clase que haga que el texto aparezca letra por letra, la forma más sencilla que encontr es esta:

Código ActionScript :

package
{
/*
// @usage: TypeWriter(s:String, v:Number, t:TextField)
// @params: s: String variable for the complete text
// @params: v: speed in milliseconds, how often the interval is called
// @params: t: textfield for the string (s)
*/

import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;


public class TypeWriter extends MovieClip
{
private var sInt:Number;
private var count:int;
private var str:String;
private var speed:Number;
private var _textField:TextField;

public function TypeWriter(s:String, v:Number, t:TextField):void
{
str = s;
speed = v;
_textField = t;

sInt = setInterval(writeIt, speed);
count = 0;
_textField.text = " ";
}

private function writeIt():void
{
_textField.text = str.substring(0,count);
count += 2;
if(count > str.length)
{
clearInterval(sInt);
}
}
}
}

El problema es que no logra llamar a la clase desde el .fla. Alguien podria darme una mano?

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Sep 2014 08:38 pm
La clase debe estar en un archivo TypeWriter.as en el mismo directorio que el fla

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Sep 2014 08:59 pm
Ya tengo el .as dentro en el mismo directorio que el .fla y llamado de esa forma. El problema es que no se que codigo debo colocar dentro .fla para llamar a esa clase.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Sep 2014 09:06 pm
Tienes que poner un textfield en el escenario, llamarlo miTextField, y luego crear la instancia y agregarla al escenario ...

addChild(new TypeWriter("Hola", 1000, miTextField))

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Sep 2014 09:24 pm
Gracias por responder (y tan rapido xD)
Ese codigo es una aproximacion al que yo hacia, solo que no le ponia addchild.
Ahora si quedo funcionando muchas gracias por la ayuda.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Sep 2014 11:02 pm
Ok, me alegro de haberme aproximado lo suficiente ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Sep 2014 06:25 pm
Tengo otra consulta.
¿Hay alguna forma de que con esa clase, yo pueda presionar un boton llamado por ejemplo "miboton", y aparezca todo el texto de golpe"?
He intentado diversas maneras pero no lo he logrado. Aun estoy estudiando e intentando entender mejor la comunicacion entre las clases extrernas y el .fla.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Sep 2014 06:36 pm
Ell addChild que te puse, lo metes dentro de una función, llamas a esa función desde el botón y se ejecuta ... no entiendo bien el problema

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Sep 2014 07:43 pm
La clase que puse arriba lo que hace es escribir un texto letra por letra a una determinada velocidad.
Quiero saber si hay alguna forma modificando la clase, de al presionar un boton, que el texto que se esta escribiendo en ese momento letra por letra, aparezca todo de golpe.

O sea, por ejemplo tengo este texto:
"El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña toca el saxofón detrás del palenque de paja."
Y cuando se jecuta la clase y va por:
"El veloz murciélago
Quiero apretar un boton y que aparezca todo, o sea:
"El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña toca el saxofón detrás del palenque de paja."

No se si bastaria con una simple modificacion en la clase o tendria que replantear toda la estructura de la misma.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Sep 2014 08:32 pm
Agrega una función en la clase que lo asigne entero

Código ActionScript :

private function writeAll():void
{
_textField.text = str;
}


Llamas ese método y voilá

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Sep 2014 10:14 pm
Y como llamo a ese metodo que esta dentro de la clase?

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Sep 2014 02:45 pm
Sería

Código ActionScript :

var typewriter:TypeWriter = new TypeWriter("Hola", 1000, miTextField); 
addChild(typewriter)
typewriter.writeAll()


Cambia el método de private a public para poder llamarlo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2014 10:55 pm
Muchas gracia por la ayuda.

Por javiert239

38 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.