我试图找出是否可以在 Actionscript 中以字符串格式(“orange”、“blue”)使用颜色别名。由于 AS 的主要目的是生成 SFW 图形,因此必须有方便的方法以类似于其他编程语言允许的方式进行编码。
我希望这段代码会生成一个蓝色矩形:
package
{
import flash.display.*;
public class NewActionScriptDesktopProject extends Sprite
{
public function NewActionScriptDesktopProject()
{
graphics.beginFill('blue');
graphics.drawRect(0,0,300,200);
}
}
}
相反,代码应该包含以下内容:
graphics.beginFill(0xe0057B7);
不,但您有几个选择:
public class Color {
static public const SKY_BLUE:uint = 0x0099FF;
}
public class Main extends Sprite {
public function Main() {
graphics.beginFill(Color.SKY_BLUE)
}
}
或
import flash.display.Shape;
public class GFX extends Shape {
public function GFX() {
}
public function beginFill(colorName:String, alpha:Number=1.0):void {
graphics.beginFill(colorStringToInt(colorName), alpha);
}
public function colorStringToInt(colorString:String):uint {
if (colorString == "skyblue") {
return 0x0099FF;
} else if (colorString == "darkgrey") {
return 0x3D3D3D;
} // etc.
}
}
就我个人而言,我采用了第一种方法的更复杂的路线,并创建了一个具有各种颜色操作函数的自定义 RGBA 类。这非常有帮助。 请查看此处,了解一些有关选择选项 1 时可以执行的操作的示例。
编辑:我已将我的颜色库与 SWC 二进制文件一起提交到一个单独的存储库中,如果需要,可以随意使用它:)