Rescatar un text y reusarlo

  • #1
    jmpinero está desconectado

    Bushido Avatar de jmpinero


    Rescatar un text y reusarlo

    Desde hace ya un tiempo, me ronda una duda, y no logro resolverla. Tengo dos objetos en una escena, un box y un text, intento rescatar el text y usarlo con el comando hide para que me oculte box, pero no lo hace.

    Este es el código fallido.

    Código:

    A = box size:15. B = text size:20 pos:[0,20,0] text:box01. Vaya = emptymodifier ().
    add modifier b m. Valuehide = ($ + b, text) as string. Def = attributes test.
    (Trollout rtest test t(t button b01 hide on b01 pressed do (t hide valuehide ) t)). Custattributes, add Def.

    .

    Si evaluo valuehide me devuelve $box01.

    Si pongo en el Listener hide $box01, me lo oculta.

    Pero si lo hago así, no. ¿por que?

    /* Jmpinero3D Blog´s */ | «Hasta el mas sabio se puede sentar encima de un hormiguero, pero solo el necio se queda sentado«


  • #2
    Nessito está desconectado

    Usuario Legendario


    Rescatar un text y reusarlo

    La función hide espera un nodo, y lo que tule pasa es una cadena. Que la cadena sea un literal de un nodo no quiere decir que se convierta automáticamente.

    Tal y como tienes el código tendrías que hacer algo como:

    Código:

    hide (execute valuehide)

    .

    O bien:

    Código:

    valuehide = execute ($ + b, text)

    .
    (La conversión as string no es necesaria).

    Pero la función execute es una de lenta. Es mejor hacer algo así:

    Código:

    a = box size:15. B = text size:20 pos:[0,20,0] text:box01. Vaya = emptymodifier ().
    add modifier b m.
    valuehide = b, text. Def = attributes test.
    (Trollout rtest test t(t button b01 hide on b01 pressed do (t hide (getnodebyname valuehide) ) t)). Custattributes, add Def.

    .

    Siempre y cuando quieras mantener el control por nombres, lo cual es un poco peligroso. Que ocurre si hay dos objetos con el mismo nombre en la escena? Que tanto execute como getnodebyname te devolverán el primero que encuentren (sospecho que por node id) independientemente de que sea el que tú pretendes.

    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.


  • #3
    jmpinero está desconectado

    Bushido Avatar de jmpinero


    Rescatar un text y reusarlo

    Me encuentro con un problema, si reinicio la escena me devuelve un error.

    Archivos adjuntados Archivos adjuntados

    /* Jmpinero3D Blog´s */ | «Hasta el mas sabio se puede sentar encima de un hormiguero, pero solo el necio se queda sentado«


  • #4
    Nessito está desconectado

    Usuario Legendario


    Rescatar un text y reusarlo

    No SASjodio. Estas tirando de una variable global externa para tu ca. Si reseteas o recargas la escena, ¿dónde está la variable? Fuf, como humo se va.

    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.


  • #5
    jmpinero está desconectado

    Bushido Avatar de jmpinero


    Rescatar un text y reusarlo

    Vaya, ya voy entendiendo el tema, voy a probar haciendo operación con los string y ejecutándolos como nodo. Gracia Nessito.

    /* Jmpinero3D Blog´s */ | «Hasta el mas sabio se puede sentar encima de un hormiguero, pero solo el necio se queda sentado«