Here is a CButtonControl.as class that'll control the behavior of a movieclip (made in flash) and make it work like a button.
The movieclip should have atleast 4 frames with labels as:
These labelled frames will work as different states of the button.
CODE
The movieclip should have atleast 4 frames with labels as:
- up
- over
- down
- disable
These labelled frames will work as different states of the button.
CODE
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* @file CButtonControl.as
* @author Abhishek Kumar
*/
public class CButtonControl
{
private var Container:MovieClip = null;
public var proceed:Function;
private var objekt:Object = {};
public function CButtonControl(iReference:MovieClip)
{
Container = iReference;
initializeAssets();
}
private function initializeAssets():void
{
objekt.id = -1;
Container.visible = true;
Container.mouseChildren = false;
Container.gotoAndStop('disable');
}
public function initializeEvents():void
{
Container.buttonMode = true;
Container.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
Container.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
Container.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
Container.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function destroyEvents():void
{
Container.buttonMode = false;
Container.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
Container.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
Container.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
Container.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
//Container.removeEventListener(MouseEvent.ROLL_OUT, onMouseOut);
}
private function onMouseDown(me:MouseEvent):void
{
Container.gotoAndStop('down');
}
private function onMouseUp(me:MouseEvent):void
{
Container.gotoAndStop('up');
(objekt.id == -1)? proceed() : proceed(objekt);
}
private function onMouseOver(me:MouseEvent):void
{
Container.gotoAndStop('over');
}
private function onMouseOut(me:MouseEvent):void
{
Container.gotoAndStop('up');
}
public function setLabel(iLabel:String, isHtml:Boolean=false):void
{
if(isHtml)
Container.caption.htmlText = iLabel;
else
Container.caption.text = iLabel;
}
public function embedFonts(bool:Boolean):void
{
Container.caption.embedFonts = bool;
}
public function hide():void
{
Container.visible = false;
}
public function show():void
{
Container.visible = true;
}
public function enable():void
{
initializeEvents();
Container.gotoAndStop('up');
}
public function disable():void
{
destroyEvents();
Container.gotoAndStop('disable');
}
public function set id(id:int):void
{
objekt.id = id;
}
public function get id():int
{
return objekt.id;
}
}
}
Comments
Post a Comment