Basic hover alpha button component

January 21, 2015 ยท View on GitHub

import luxe.Input; import luxe.Sprite; import luxe.Color; import luxe.Component; import luxe.tween.Actuate;

class HoverAlpha extends Component {

public var amount : Float = 0.3;
public var start : Float = 1;
public var active : Bool = true;
public var speed : Float = 0.1;
public var hovered : Bool = false;

var sprite:Sprite;

public function new() {

    super({ name:'hover' });

}

override function init() {

} //init

override function onadded() {
    sprite = cast entity;
}

override function onmousemove( event:MouseEvent ) {

    if(!active) {
        return;
    }

    if(sprite.point_inside_AABB(event.pos)) {

        if(!hovered) {
            hover();
        }

    } else {

        if(hovered) {
            unhover();
        }

    } //point inside

} //mousemove

public function hover() {

    hovered = true;
    sprite.color.tween(speed, { a:start-amount });

} //hover

public function unhover() {

    hovered = false;
    sprite.color.tween(speed, { a:start });

} //unhover

} //HoverAlpha