Actionscript 3.0 Cadena Con Formato?

¿Cómo puedo dar formato a una cadena con la llave variables en AS3?

//vars
var myNumber:Number = 12;
var myString:String = "Months";
var myObject:MovieClip = year;

//string
myString.txt = "One (?) consists of (?) consecutive (?)", string(myObject), string(myNumber), myString;

así en la cadena anterior, me gustaría myString para mostrar «Un año consta de 12 Meses consecutivos«, pero soy nuevo en AS3 y no sabe la manera correcta de dar formato a una cadena.

estoy seguro de que voy a tener que emitir el número de variables en un string, string(myNumber), pero no sé si la fundición de un clip de película variable a una cadena, cadena(myMovieClip), devolverá el nombre del clip de película o producir un error. estoy dispuesto a apostar por la tarde.

3 Kommentare

  1. 48

    Las respuestas a esta pregunta similar sugieren el uso de la Formateador clase o StringUtil.sustituir().

    La última parece la más sencilla; en tu caso deberías usar algo como esto:

    var str:String = "One {0} consists of {1} consecutive {2}";
    var newString:String = StringUtil.substitute(str, myObject, myNumber, myString);

    substitute() automáticamente debe emitir sus argumentos a la Cadena, pero no estoy seguro de que si, como en el código, puedes lanzar un MovieClip (myObject) como una Cadena.

    Otra buena opción, especialmente si usted ha usado printf en otros lenguajes de programación, es este de terceros printf-as3 función.

  2. 1

    convertir los objetos a cadenas

    El método toString() está definido en la clase Object. Así que todos los objetos tienen este método definido para ellos. Llamar myObject.toString() será, por tanto, suelen darte lo que estás buscando. Ciertos objetos definir métodos adicionales, tales como la fecha.getHours(), que devuelve la cadena descripciones del objeto en un formato diferente de la proporcionada por getString().

    Para los nativos de tipos como int, puede convertir el uso de la Cadena(myInt).

    la Concatenación de cadenas

    Usted puede, a continuación, añadir las diferentes partes de una cadena de la siguiente manera:

    var myString:String = "There are " + String(24) + " hours in a day."

    Espero que ayude,
    Dave

  3. 0

    El camino más corto que me gustaría hacer es algo como:

    var finalString:String = "One " + myObject + " consists of " + myNumber + " " + myString;

    Una sola o doble cita inicia un literal de cadena. Si utiliza el símbolo + para agregar algo a un literal de cadena va a llamar automáticamente a toString() en el objeto.

    myObject devolverá [Objeto MovieClip], aunque. Lo que quiero hacer es crear una clase personalizada que extends MovieClip y, a continuación, reemplace el método toString() método protegido para regresar cualquier cadena que desea a escupir.

    Espero que ayude!

    • miobjeto.nombre parece funcionar. var finalString:String = «Uno» + myObject.nombre + «se compone de» + myNumber + «» + myString;
    • miobjeto.nombre sólo funcionará si: a) myObject está en el escenario y tiene un nombre de instancia o si B) establecer manualmente myObject.nombre en algún lugar previamente. .el nombre es una cadena de propiedad de cualquier objeto DisplayObject, creo. Es para una mejor integración en el IDE de Flash (es decir, de modo que usted puede poner cosas en el escenario) o para casos específicos en los que usted necesita a nombre de cosas así que usted puede utilizar getChildByName(). Aún así, me alegro de que te ayuda! Es mucho más fácil usar el operador + para ensamblaje de complejos de cadenas en Flash. Saludos!

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea