Clutter::Behaviour(3) Class for providing behaviours to actors


Clutter::Behaviour is the base class for objects controlling the behaviour of actors. These objects are used primarily to drive a set of actors depending on the position on a timeline, using an ``alpha'' function; the alpha function is held by the Clutter::Alpha object, which automatically binds a Clutter::Timeline to the function.




$behaviour->actors_foreach ($func, $data=undef)

  • $func (scalar)
  • $data (scalar)

actors = $behaviour->get_actors

alpha = $behaviour->get_alpha

$behaviour->set_alpha ($alpha)

  • $alpha (Clutter::Alpha)

$behaviour->apply ($actor)

  • $actor (Clutter::Actor)

boolean = $behaviour->is_applied ($actor)

  • $actor (Clutter::Actor)

integer = $behaviour->get_n_actors

actor = $behaviour->get_nth_actor ($index)

  • $index (integer)

$behaviour->remove ($actor)

  • $actor (Clutter::Actor)



'alpha' (Clutter::Alpha : readable / writable / private)
Alpha Object to drive the behaviour


applied (Clutter::Behaviour, Clutter::Actor)
removed (Clutter::Behaviour, Clutter::Actor)


Clutter provides various behaviours, like Clutter::Behaviour::Opacity, Clutter::Behaviour::Path and Clutter::Behaviour::Scale. You may derive a new behaviour from any of these, or directly from the Clutter::Behaviour class itself.

The new behaviour must be a GObject, so you must follow the normal procedure for creating a new Glib::Object (i.e., either using the Glib::Object::Subclass pragmatic module or by directly calling the Glib::Type::register_object function). The new subclass can customize the behaviour by providing a new implementation of the following method:

ALPHA_NOTIFY ($behaviour, $alpha_value)
o $behaviour (Clutter::Behaviour)
o $alpha_value (float) The value computed by the alpha function

This is called each time the value of the alpha function held by the Clutter::Alpha object bound to the behaviour changes. You should update the property, or the properties, of the actors controlled by your behaviour using alpha_value, scaled accordingly.


Copyright (C) 2006, 2007, 2008 OpenedHand Ltd

Copyright (C) 2009 Intel Corporation

This module is free software; you can redistribute it and/or modify it under the terms of either:

  • the GNU Lesser General Public Library version 2.1; or
  • the Artistic License, version 2.0.

See Clutter for the full copyright notice.