[英]Can I add additional frames to button ones?
I'm new in ActionScript3 and Flash. 我是ActionScript3和Flash的新手。 I would know if in the button instance (in which there are Up, Over, Down and Clicked frames, relative to upState, overState and downState) can be added other frames to call with the same method. 我想知道是否可以在按钮实例中(相对于upState,overState和downState,有Up,Over,Down和Clicked框架)可以添加其他框架以使用相同的方法进行调用。
I need something like this: 我需要这样的东西:
if(...){
Button.upState = Button.MyOwnFrame;
}
Thanks in advance! 提前致谢!
You may want to look into the SimpleButton
class as it allows you to assign any DisplayObject
to the different states upState
, overState
, downState
, and hitTestState
. 您可能需要研究SimpleButton
类,因为它允许您将任何DisplayObject
分配给不同的状态upState
, overState
, downState
和hitTestState
。
Here's the example from Adobe's API Reference: 这是Adobe API参考中的示例:
package {
import flash.display.Sprite;
public class SimpleButtonExample extends Sprite {
public function SimpleButtonExample() {
var button:CustomSimpleButton = new CustomSimpleButton();
addChild(button);
}
}
}
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.SimpleButton;
class CustomSimpleButton extends SimpleButton {
private var upColor:uint = 0xFFCC00;
private var overColor:uint = 0xCCFF00;
private var downColor:uint = 0x00CCFF;
private var size:uint = 80;
public function CustomSimpleButton() {
downState = new ButtonDisplayState(downColor, size);
overState = new ButtonDisplayState(overColor, size);
upState = new ButtonDisplayState(upColor, size);
hitTestState = new ButtonDisplayState(upColor, size * 2);
hitTestState.x = -(size / 4);
hitTestState.y = hitTestState.x;
useHandCursor = true;
}
}
class ButtonDisplayState extends Shape {
private var bgColor:uint;
private var size:uint;
public function ButtonDisplayState(bgColor:uint, size:uint) {
this.bgColor = bgColor;
this.size = size;
draw();
}
private function draw():void {
graphics.beginFill(bgColor);
graphics.drawRect(0, 0, size, size);
graphics.endFill();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.