Mouse-Over

Материал из Поле цифровой дидактики

The Mouse-Over script is a 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. It can be used for menu buttons.

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

Single Button Graphic Effects

This script uses a different concept, it will 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 costume to [first v]
else
if <<(mouse y) > [0]> and <touching [mouse-pointer v]?>> then
switch costume to [second v]
else
if <<(mouse y) > [-30]> and <touching [mouse-pointer v]?>> then
switch costume to [third v]
else
switch costume to [fourth 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
erase all
go to x: (0) y: (30)
switch costume to [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 costume to [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 costume to [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 costume to [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