Hotword

Hola
Tengo una serie de palabras calientes en un campo de texto y lo que quiero es que cuando pase por encima de ellas se me muestre un campo de texto para hacer una pequeña aclaració.
¿Cómo puedo hacer esto?
Muchas Gracias
1

1 Respuesta

252.550 pts.
Hasta el lunes no creo que pueda contestar nada. Tengo unos trabajos que me urgen . Lo siento, de veras, porque yo respondo a vuestras preguntas el mismo día, pero ahora mismo no puedo..
Dwe todas formas dime si lo que quieres son toolpits como las de windows o que quieres exactamente
Aquí tienes un tooltip, pero obviamente esto se puede mejorar y hacerlo como los de windows.
property p_tooltip
on getPropertyDescriptionList me
lista = [:]
addProp lista, #p_tooltip,\
[#comment: "elige el sprite de tooltip", #format: #integer, #default: 2]
return lista
end
on beginSprite me
sprite (p_tooltip).visible=false
end
on mouseEnter me
sprite (p_tooltip).loc=the mouseloc
sprite (p_tooltip).visible=true
end
on mouseLeave me
sprite (p_tooltip).visible=false
end
Esto que me has enviado me puede servir, pero el tooltip me aparece cada vez que entro en el campo de texto y yo quiero que aparezca solo cuando entro en una palabra, y dependiendo de la palabra en la que se entra que aparezca un tooltip u otro
Aquí tienes un comportamiento para un field y que hace visible el sprite uno al pasar sobre la 2ª palabra del field:
--Todo el código es necesario, no puedes borrar nada aunque creas que sobran cosas.
On exitframe me
if rollover(me.spritenum) then
if the mouseword=1 then
sprite(1).visible=1
else
sprite(1).visible=0
end if
end if
end
on mouseleave me
sprite(1).visible=0
end
Te envío el código que yo estoy utilizando haber si ves donde esta el fallo. Cuando trabajo con los alert me funciona correctamente, pero con los fields no lo consigo, no se si se me esta escapando algo que no conozco de lingo, ya que yo solo llevo unos meses trabajando con el.
on exitFrame me
go to the frame
repeat while sprite(1).loc <> empty
if sprite(1).pointInHyperlink(the mouseloc)=true then
link = member("lista").word[sprite(1).pointToWord(the mouseloc)].hyperlink
hotword = (chars(link,2,20))
link = value (chars(link,1,1))
sprite(1).cursor = 280
alert ("visible")
sprite(3).visible = true
else
alert ("oculto")
sprite(1).cursor = -1
sprite(3).visible = false
end if
end repeat
end exitFrame
Gracias
Un saludo
Deberías analizar los comandos mouseword, itemword..., que te he puesto en mi ejemplo porque son justo para lo que tu necesitas y son más interesantes para hacer hipervínculos para una persona que ya conoce lingo tan bien como tu.
Cosas que tienes mal:
Sprite(1). ¿Loc <> empty?. Esto no se para que lo haces, a lo mejor esta bien pero no entiendo para que sirve.
PointInHyperlink(sprite(1), the mouseloc)
Con esto lo único que estas haciendo es saber si el ratón pasa por un hipervínculo, pero podría ser cualquiera de ese texto. Esto no tiene ningún sentido.
link = member("lista").word[sprite(1).pointToWord(sprite(1),the mouseloc)].hyperlink
Aqui no entiendo lo que haces porque el word que obienes no es un word sino que es un valor entre 0 y 1 (true, false).
Sprite(1).cursor = 280 ! Para hacer esto deberias usar el mouseword y no hipervinculos. Es un sin sentido.
value (chars(link,1,1))????????????
Esta variable va a ser <void>,
Es como si haces esto
put value("d")
-- <Void>
¿No entiendo para que lo haces?
¿En definitiva?
Hazme caso y usa el comando mouseword
sprite(1).loc <> empty ????. Esto no se para que lo haces, a lo mejor esta bien pero no entiendo para que sirve.
pointInHyperlink(sprite(1),the mouseloc) -- esto es efectiva mente para ver si estoy dentro de un hypervinculo dentro de un texto
link = member("lista").word[sprite(1).pointToWord(sprite(1),the mouseloc)].hyperlink -- aqui lo que pretendo es sacar el valor del hypervinculo y meterlo en una variable
sprite(1).cursor = 280 !!!!!!!!!! Para hacer esto deberias usar el mouseword y no hipervinculos. Es un sin sentido.
value (chars(link,1,1))????????????
Esta variable va a ser <void>,
Es como si haces esto --
------
Aquí pretendo utilizar parte del valor del hypervinculo para hacer un que se muestre un campo, siempre se va mostrar el campo dependiendo de este valor
¿No entiendo para que lo haces?
----
Necesito trabajar de esta menera por que voy a tener un campo de texto o varios y dentro de estos campos de texto voy a tener una serie de palabras activas (hotWord) y quiero hacer un código en el cual me de igual en que palabra este y solo dependa del valor del hyperviculo.
Hazme caso y usa el comando mouseword
---
No he utilizado lo de tu ejemplo por que no me funciona, no se exactamente que quieres hacer.
Si me aclaras algo más te lo agradecería
Un saludo
Matias
link = member("lista").word[sprite(1).pointToWord(sprite(1),the mouseloc)].hyperlink
link no puede ser la varible que tu quieres porque sprite(1).pointToWord(sprite(1),the mouseloc)] no es una palabra sino que un valor entre 0 y 1.!!!
link = value (chars(link,1,1))
con esto link va a valer <void>, estas pidiendo el valor numero de un caracter
es como si haces esto
put value("d")
-- <Void>
Sprite(1).cursor = 280 ! Para hacer esto deberias usar el mouseword y no hipervinculos. Es un sin sentido.
Lo que ocurre aquí es que los hipervínculos tienen su propio cursor y no tiene sentido que te inventes otro, porque esta no es la filosofía de los hipervínculos.
El comando mouseword sirve para que cuando el cursor pasa sobre una palabra
realice los comandos lingo que tu desees. Por ejemplo puedes hacer que cuando el cursor pase sobre la palabra numero 6 de un texto la película vaya un determinado frame o las cosas que tu quieras (que el cursor se cambie 280).
Muchas gracias por tu atención durante todos estos días, al final empecé de cero y ya lo tengo solucionado y ademas te adjunto el código por si este te sirviera.
on hyperlinkClicked me, data
Global fotograma
Global película
Global marcador
Global hotWord
Global inicial
Global numero
fotograma = the frame
Pelicula = the movieName
marcador = the frameLabel
Data = (chars (data, 2,20)) -- quito al valor del hypervinculo el numero que es para reconocer el Sprite
hotWord = data -- introducco en una variable la palabra seleccionada
alert hotword
Data = (chars(data, 1,1)) -- introducco en una variable la primera letra
alert data
inicial = data
go to frame data of movie "glosario"
end
on exitFrame me
global link
if rollover(me.spritenum) then -- detecto si el cursor esta dentro del campo de texto
if sprite(me.spriteNum).pointInHyperlink(the mouseLoc) = 1 then -- detecto si estoy dentro de un hypervinculo
raton = the mouseLoc -- posicio del cursor
numeroSprite = sprite(me.spriteNum).pointToWord(raton) -- localizo el numero de la palabra
link = member("lista").word[numeroSprite].hyperlink -- introducco en una variable el valor del link
hotword = (chars(link,2,20)) -- introducco en una variable el valor de la palabra seleccionada (HotWord)
link = value (chars(link,1,1)) -- introducco en una variable el número del Sprite para luego mostrarlo
sprite(link).visible=1
else
sprite(link).visible=0
end if
end if
end exitFrame
on mouseLeave me
Global link
sprite (link).visible=false
end
Un saludo
Matias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas