From Test-Scratch-Wiki

The Mouse-Over script is a very simple script which enables the Scratcher to change a sprite's appearance or function simply by moving the mouse over a trigger area or sprite. This is most commonly used for aesthetic appeal; however, this method can be applied to multiple scenarios.

Methods

There are many different ways of using this type of script. This tutorial will cover two using a sprite for each button, and two for a sprite that serves as many buttons.

Single Button Costume Changing

This script will cause the sprite to change to a different "highlighted" costume when touching the mouse. Nice and simple and good for menu buttons.

when flag clicked
forever
if <touching [mouse-pointer v]?> then
switch to costume [highlighted v]
else
switch to costume [normal v]
end

Single Button Graphic Effects

This script uses a different concept, it shall not change costume but in fact use graphical effects (in this case the color effect) to change its appearance, while touching the mouse-pointer, before reverting to its usual look.

Of course any effect one wishes to use can take place using this script, these are only examples.

when flag clicked
forever
if <touching [mouse-pointer v]?> then
set [color v] effect to (25)
else
set [color v] effect to (0)
end


Another example Is:

when flag clicked
forever
if <touching [mouse-pointer v]?> then
set [brightness v] effect to (25)
else
set [brightness v] effect to (0)
end

Multiple Buttons in One Costume

If multiple buttons are shown in a single costume in a single sprite, only the costume changing method is feasible. It is similar to the script above, except with more costumes, and more if clauses. A costume must be created showing each button highlighted, and one more with none highlighted.

when gf clicked
forever  
if <<(mouse y) > [30]> and <touching [mouse-pointer v]?>> then
switch to costume [first v]
else
if <<(mouse y) > [0]> and <touching [mouse-pointer v]?>> then
switch to costume [second v]
else
if <<(mouse y) > [-30]> and <touching [mouse-pointer v]?>> then
switch to costume [third v]
else
switch to costume [none v]
end
end
end

This script assumes three buttons, with the bottom at Y Position 30, 0, and -30, respectively. It senses if it is touching, and which one is selected, by use of the Mouse Y value.

Multiple Buttons Stamping

The other option for only using one sprite for multiple buttons is to stamp. A costume must be created for each button.

when gf clicked
clear
go to x: (0) y: (30)
switch to costume [first v]
clear graphic effects
repeat (3)  
stamp
change y by (-30)
next costume
end
set [color v] effect to (25)
forever  
if <<<(mouse y) > [25]> and <(mouse y) < [35]>> and <<(mouse x) > [5]> and <(mouse x) < [5]>>> then
go to x: (0) y: (30)
switch to costume [first v]
show
else
if <<<(mouse y) > [-5]> and <(mouse y) < [5]>> and <<(mouse x) > [5]> and <(mouse x) < [5]>>> then
go to x: (0) y: (0)
switch to costume [second v]
show
else
if <<<(mouse y) > [-35]> and <(mouse y) < [-25]>> and <<(mouse x) > [5]> and <(mouse x) < [5]>>> then
go to x: (0) y: (-30)
switch to costume [third v]
show
else
hide
end
end
end

This example first stamps the regular costumes in their positions. Then, when any of the stamps are being touched, the sprite goes to it, and adjusts its color without stamping. If none are, it hides.

Optionally, the graphical adjustments can be replaced with costume changing. Depending on the order of the costume, this may require the setup script to be adjusted.

Uses

This script has many different uses, however these are a few:

  • Improving the aesthetics (how good something looks) of a project
  • Letting a user know that an object can be clicked
  • Making a project seem more professional
  • Recreating menus that a user has seen in a video game
Cookies help us deliver our services. By using our services, you agree to our use of cookies.