Indicateur de sélection
Il peut servir pour définir le focus d'un objet de tout nature se trouvant sur la scène.
On utilise pour cela un acteur de type shape ( rectangle transparent doté d'un contour noir ) correspond à l'outil rectangle dans la barre d'outils.
On place ce rectangle hors scène, comme indiqué sur l'image suivante
On applique le comportement sur l'objet de la scène et l'on obtient la fenêtre suivante pour paramétrer les options.
- Piste du Liseret : Correspond au numéro de piste surlequel est placé le liseret sur le timeline.
- Espacement : Permet de définir l'espacement entre l'objet et le liseret ( rectangle) lui même.
Voila le résultat lorsque la scène est en mode lecture et que l'on survole un objet.
Ici un acteur texte, mais cela pourrait très bien être un bitmap etc…
Présentation du script Indicateur :
-- Indicateur de sélection --------------------------------------------------------------- -- Developped by Laurent Leedoriden -- Copyright © 1996-2004 Leedoriden DSFW -- All rights reserved -- created : 12/15/2004 -- last updated : 12/15/2004 ---------------------------------------------------------------- property pmySprite, pShapeColor, pLocShape, pSizeShape, pPisteNumberShape, pOffsetLiseret property ptheMember on getpropertydescriptionlist me ptheMember = sprite(the currentspritenum).member if not ptheMember then exit MyPropertyList = [ : ] MyPropertyList[#pmySprite] = ([#comment:"&Choix du Liseret :", #format:#shape , #default:ptheMember]) MyPropertyList[#pShapeColor] = ([#comment:"Couleur &du Liseret :", #format:#color, #default:rgb(255,0,0)]) MyPropertyList[#pPisteNumberShape] = ([#comment:"&Piste du Liseret :", #format:#integer, #default:1]) MyPropertyList[#pOffsetLiseret] = ([#comment:"&Espacement :", #format:#integer, #range:[#min:0, #max:12], #default:3]) return MyPropertyList end on getbehaviordescription me return "Indicateur de sélection pour un menu ou faire un choix." end on getbehaviortooltip me return me.getbehaviordescription() end on beginsprite me pLocShape = sprite(pPisteNumberShape).loc -- position de départ ( ici hors scène ) -- taille de départ pSizeShape = sprite(pPisteNumberShape).height sprite(pPisteNumberShape).width = pSizeShape ptheMember = pPisteNumberShape -- numéro de piste liseret end on mouseenter me sprite(ptheMember).color = pShapeColor sprite(ptheMember).loch = sprite(me.spritenum).loch - pOffsetLiseret sprite(ptheMember).locv = sprite(me.spritenum).locv - pOffsetLiseret sprite(ptheMember).width = sprite(me.spritenum).width + (pOffsetLiseret *2) sprite(ptheMember).height = sprite(me.spritenum).height +(pOffsetLiseret *2) end on mouseleave me sprite(pPisteNumberShape).loc = pLocShape -- retour position d'origine -- retour à sa taille origine pSizeShape = pSizeShape sprite(pPisteNumberShape).height = pSizeShape sprite(pPisteNumberShape).width = pSizeShape end
Remarque :
Vous avez sans doute remarqué que pOffsetLiseret est multiplié par 2.
Tout simplement pour éviter une déformation symétrique ( hauteur et largeur ) du rectangle bleu. ( présenté sur la scène plus haut )
tuto by Leedoriden
