OVH Cloud OVH Cloud

[DirMX] curseur sur zone de texte

11 réponses
Avatar
Wolfy44
Bonsoir,
j'ai un acteur texte.
Au survol de cet acteur, mon curseur se change en crayon.
Si je clique dessus, j'ai la fonction edit = true.
Jusque là pas de souci.
Mais si je vais a un autre endroit de ma scene et que je retourne à
l'endroit où se trouve l'acteur texte, ben le curseur ne se change plus en
crayon. Par contre en cliquant dessus, il continue a bien s'editer. J'ai
bien essayer un updatestage mais rien n'y fait! Même si j'arrête l'animation
et que je relance la lecture, rien!
Il se réactive uniquement lorsque je clique sur rembobiner.
Bizarre!? Une solution, ou bien dois-je mettre ça sur le compte d'un bug?

Merci à vous

Wolfy

10 réponses

1 2
Avatar
Twinky
Hello

-- reinitialiser le curseur par defaut ( curseur fleche standard => )
on mouseleave
cursor -1 -- cuseur fleche systeme
end

-- reaffiche le curseur crayon via un bitmap
on mousewithin
cursor 200 -- cuseur vide ( masque le curseur )
sprite(150).member = "moncrayon"
sprite(150).Loc = the mouseLoc
end

Twinky


"Wolfy44" a écrit dans le message de news:
bl9vej$pp8$
Bonsoir,
j'ai un acteur texte.
Au survol de cet acteur, mon curseur se change en crayon.
Si je clique dessus, j'ai la fonction edit = true.
Jusque là pas de souci.
Mais si je vais a un autre endroit de ma scene et que je retourne à
l'endroit où se trouve l'acteur texte, ben le curseur ne se change plus en
crayon. Par contre en cliquant dessus, il continue a bien s'editer. J'ai
bien essayer un updatestage mais rien n'y fait! Même si j'arrête


l'animation
et que je relance la lecture, rien!
Il se réactive uniquement lorsque je clique sur rembobiner.
Bizarre!? Une solution, ou bien dois-je mettre ça sur le compte d'un bug?

Merci à vous

Wolfy




Avatar
Wolfy44
Merci de ta réponse, mais en fait, ce n'est pas ça.
J'ai utilisé le curseur systeme "crayon" (cursor 256 je crois). Un truc tout
simple.
J'ai même essayé d'utiliser une image vierge par dessus la zone de texte
editable qui active la detection du curseur et l'edition de texte. Le survol
ne marche qu'avant la zone texte edité, ensuite c'est fini, le curseur
refuse les détections de survol sur la zone texte(enfin je veux dire sur mon
image factice qui devrait modifier le curseur). C'est juste l'acteur texte
editable en dessous qui fou le bazar vu que si je pousse mon acteur factice
en dessous de la zone texte, celle-ci réagit de nouveau correctmement!

Wolfy
Avatar
Ned
désactive l'" editable " de ton acteur au mouseLeave. C'est la propriété
"editable" qui force le curseur à I quand elle est vraie.


--
----------------
-- Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Wolfy44
Slt,
bon ben même avec un editable = false et updatestage, rien à faire!
Finalement, je vire l'acteur texte en entrant sur la scene et la fait
réapparaitre en cliquant sur l'image factice. C'est lourd mais ça marche
bien comme ça. Dommage que ça ne puisse pas marcher correctement sans devoir
utiliser 1000 astuces! Le temps qu'on peut perdre avec ce genre de truc!
J'ai pas essayé avec Dir8.5 car si ça se trouve, ça ne le fait pas!

bye bye!

Wolfy
Avatar
Ned
tu joues sur son "visible" ?
ça n'a rien d'une bidouille, et ça permet de résoudre des tonnes de
situation avec dir. Noublie pas que pour tout ce qui touches de près l'OS
coté graphique (champ de texte, vidéo, ...) dépend justement de l'OS
lui-même, donc MM y a moins la main.
Content que t'es pu t'en sortir en tout cas :o)
--
----------------
-- Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Wolfy44
oui oui je joue avec son "visible" ;)
Les bidouilles, j'aime po ça! ça fait perdre un temps dingue, surtout qu'en
l'action est répétée 50 fois. Mais bon, j'vais bien réussir par m'en sortir
mais ça fait désordre d'avoir 40.000 sprites factices pour corriger le tir
(ouf!)

Merci de ton aide!

Wolfy
Avatar
Ned
je le répète : c'est pas de la bidouille, le visible concerne la "présence"
même du sprite sur la scène, évênements compris. essentiel !
mais heu....40 000 ?
--
----------------
-- Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Wolfy44
noooooon 40.000 était une image, mais faut dire que j'utilise des acteurs
textes. Là, j'viens de changer avec des acteurs champs et ça a l'air de
mieux se passer même si c'est plus laid graphiquement à cause de
l'anticrenelage inexistant sur ce type d'acteur!

bye bye

Wolf
Avatar
Wolfy44
rah la la, y'a tjrs un truc qui va pas! ouinnn! J'veux m'en sortir :)
Maintenant que j'utilise un acteur champ, j'ai résolu tous mes petits soucis
sauf un :
une fois la fonction "editable" activée, j'ai le curseur I qui clignotte
mais quand je tape mon texte, il reste desesperement à gauche et impossible
de le faire bouger! C'est logique ça par défaut?
Pourtant quand je place un acteur champ sur ma scene et que j'active
l'edition depuis l'inspecteur de propriétés, le I marche très bien!
Pis zut, je mets mon code, ça aidera peût-être d'autres personnes!
J'ai mis ça sur l'acteur champ et j'ai un autre sprite qui active l'editable
sur TRUE.

----------------------------------------
----------------------------------------
property spriteNum, currentWord,allowedKeys,maxText

on getPropertyDescriptionList me
p_list = []
p_list.addProp(#maxText, [#format #integer, #comment "Nbre max de
caracteres ", #default 20])
p_list.addProp(#allowedKeys, [#format #string, #comment "Touches valides
(rien = toutes)", #default "abcdefghijklmnopqrstuvwxyz- "])
return p_list
end

on beginSprite me
maxText = maxText -1
currentWord = ""
sprite(spriteNum).member.text = ""
sprite(spriteNum).member.editable = false
end

on keyDown me
-- Si champ est vierge -> réinitialisation de la variable currentword
if sprite(spriteNum).member.text = "" then
currentword = ""
end if


-- Si Backspace -> effacement du texte
if the keyCode = 51 then
currentword = ""
sprite(spriteNum).member.text = currentword
end if


-- Si nbre de mots > maxtext -> bloque l'ecriture
if (allowedKeys contains the key) and (allowedKeys <> "") then
if sprite(spriteNum).member.char.count > maxText then
stopEvent
else
-- ecriture dans le texte
currentWord = currentWord & the key
sprite(spriteNum).member.text = currentword
end if
end if
end

----------------------------------------
----------------------------------------

Merci NED ;)

Wolfy
Avatar
Ned
coucou :o)

désolé pour le délai, j'étais en déplacement.....
à parcourir ton code je vois pas comment tu pourrais bloquer le curseur.
D'autant plus que normalement, le seul moyen d'agir sur ses coordonnées est
d'utiliser un xtra (!)...
ça viendrait pas plutot du script qui fait passer l'editable à true ? s'il
passe son temps à le faire, il est possible que ça "pertube" le système...

à part ça, à quoi te sert currentword ? vu qu'il est en permanence = au
member.text

--
----------------
-- Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
"Wolfy44" a écrit dans le message de
news:bld06v$n00$
| rah la la, y'a tjrs un truc qui va pas! ouinnn! J'veux m'en sortir :)
| Maintenant que j'utilise un acteur champ, j'ai résolu tous mes petits
soucis
| sauf un :.....
1 2