Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[DIR 8/MX] Changement de couleur d'un texte avec acteur dans une distrib externe

3 réponses
Avatar
Pierre
Bonjour,

Voilà mon problème :
J'ai un acteur texte que je rends réactif en changeant de couleur et de
curseur.
Je crée donc un comportement sur cette acteur comme suit :

on mouseEnter
member(3).color = rgb("CC0000")
cursor 280
end

on mouseLeave
member(3).color = rgb("000000")
cursor -1
end

Ca marche très bien tant que mon acteur 3 et mon comportement sont dans la
même distribution.
Mais comment faire alors que mon acteur texte se trouve dans la distribution
machin1 et que mon comportement se trouve dans la distribution machin2 ??

Merci !!!
Pierre

3 réponses

Avatar
padbra
Salut pierre,

Ca marche très bien tant que mon acteur 3 et mon comportement sont dans la
même distribution.
Mais comment faire alors que mon acteur texte se trouve dans la


distribution
machin1 et que mon comportement se trouve dans la distribution machin2 ??



Pour repondre a cette question, je ne saurais trop te conseiller de regarder
dans l'aide du cote du mot clef "castlib
Exemple
L'instruction suivante affecte l'acteur 5 de la distribution 4 à
l'image-objet 10 :

sprite(10).member = member(5, 4)
ou bien
sprite(10).member = member(5, "maCastlib")


Voilà mon problème :
J'ai un acteur texte que je rends réactif en changeant de couleur et de
curseur.> Je crée donc un comportement sur cette acteur comme suit :

on mouseEnter
member(3).color = rgb("CC0000")
cursor 280> end

on mouseLeave
member(3).color = rgb("000000")
cursor -1
end




Ceci n'est pas un comportement, ou du moins ce n'est pas redige
correctement. L'interet d'un comportement est de pouvoir etre applique sur
plusieurs sprites qui aurait le meme comportement (justement) mais pas
forcement les memes valeurs pour leur proprietes.
Dans un comportement, l'usage du mot clef "me" (notons ici que l'on pourrait
utiliser toto, tata, titi ou meme pierre mais 'me' est tout aussi parlant)
est indispensable afin de differencier chaque sprite utilisant le
comportement. En effet, a la creation du comportement en memoire (lorsque la
tete de lecture arrive pour la premiere fois sur le sprite), une adresse
memoire lui est affecte. Si tu ne recupere pas ce parametre quelque part, tu
ne peux pas agir individuellement sur chacun des sprite. C'est le role du
'me' qui te sert de pointeur sur l'instance de ton comportement.

exemple :
-- on declare ici toutes les proprietes nessessaires a la gestion du
comportement du sprite a l'aide du mot clef property

property pspr -- propriete qui me sert a stocker le numero du sprite
property penterColor -- deux proprietes pour gerer la couleur
property pleaveColor

on beginSprite me -- il est la le fameux 'me'
pspr = me.spriteNum
penterColor = rgb("CC0000")
pleaveColor = sprite(pspr).member.color
end

on mouseEnter
sprite(pspr).member.color = penterColor
cursor 280
end

on mouseLeave
sprite(pspr).member.color = pleaveColor
cursor -1
end
Normalement, avec ca, tu n'auras plus de probleme de cast

Merci !!!


;o)

Pierre


padbra
Avatar
maks_w webforumsuser
Salut,

Je pense que que si tu a plusieur distribution ces normal qu'il ne sache pas quel member(3) prendre, ce que je te conseille ces de lui dire dans quel distribution aller charcher ton acteur...

Exemple :

on mouseEnter
member(3, 2).color = rgb("CC0000")
cursor 280
end

on mouseLeave
member(3, 2).color = rgb("000000")
cursor -1
end

* le chiffre apprés la virgule désigne dans quel distribution se situe l'acteur que tu veux faire changer de couleur

Bon courage

MAX

ps: je te conseille aussi de nommer ton acteur se sera plus facile pour toi surtout l'orsque tu commence à en avoir beaucoup.

par éxemple si tu nomme ton acteur "texte" dans ta distribution tu l'appelera comme ceci :
member("texte", 2).color = rgb("CC0000")

Et pour connaitre le numéro de la distribution tu met se script dans la fenêtre méssage :
put castLib("Le nom de ta distribution").number
Avatar
Pierre
Merci ! Ca marche très bien.

Pierre


"maks_w" a écrit dans le message de news:
bem0a1$i3t$
Salut,

Je pense que que si tu a plusieur distribution ces normal qu'il ne sache


pas quel member(3) prendre, ce que je te conseille ces de lui dire dans quel
distribution aller charcher ton acteur...

Exemple :

on mouseEnter
member(3, 2).color = rgb("CC0000")
cursor 280
end

on mouseLeave
member(3, 2).color = rgb("000000")
cursor -1
end

* le chiffre apprés la virgule désigne dans quel distribution se situe


l'acteur que tu veux faire changer de couleur

Bon courage

MAX

ps: je te conseille aussi de nommer ton acteur se sera plus facile pour


toi surtout l'orsque tu commence à en avoir beaucoup.

par éxemple si tu nomme ton acteur "texte" dans ta distribution tu


l'appelera comme ceci :
member("texte", 2).color = rgb("CC0000")

Et pour connaitre le numéro de la distribution tu met se script dans la


fenêtre méssage :
put castLib("Le nom de ta distribution").number