您的位置:首页 > 其它

Flash中模拟创建系统颜色样本(颜色拾取器)

2008-10-20 23:22 309 查看
Flash AS2.0/1.0 codes

1、在Falsh中建立一个按钮

2、拷贝以下代码到按钮的on(release)事件中,或者在根时间轴上使用



btn_createColorTable.onRelease = function():Void {

// 模拟的类似Flash内置的颜色样本表格

// 颜色样本的表格为12行*18列的表

// 每个颜色样本的格子大小为10*10,间隔为1。

// 间隔用line来填充,用来形成表格边框

var colorCellNum:Number = 0;

var colorCellX = 0;

var colorCellY = -1;

for (var i:Number = 0; i<=5; i++) {

for (var j:Number = 0; j<=5; j++) {

for (var k:Number = 0; k<=5; k++) {

_root.createEmptyMovieClip("newColorMC"+i+j+k,_root.getNextHighestDepth());

colorCellNum++;

colorCellY++;

with (_root["newColorMC"+i+j+k]) {

if (colorCellY == 6) {

colorCellY = 0;

colorCellX++;

}

_x = 11*colorCellX;

_y = 11*colorCellY;

if (colorCellNum>6*18) {

_x -= 11*18;

_y += 6*11;

}

beginFill(0x000000);

moveTo(0,0);

lineTo(10,0);

lineTo(10,10);

lineTo(0,10);

lineTo(0,0);

endFill();

// Create a color object called my_color for the target _root["newColorMC"+i+j+k]

var my_color:Color = new Color(_root["newColorMC"+i+j+k]);

// Create a color transform object called myColorTransform using

// Set the values for myColorTransform

var myColorTransform:Object = {ra:0, rb:51*i, ga:0, gb:51*j, ba:0, bb:51*k, aa:300, ab:300};

// Associate the color transform object with the Color object

// created for _root["newColorMC"+i+j+k]

my_color.setTransform(myColorTransform);

_root["newColorMC"+i+j+k].onRollOver = function():Void {

// 这里用来改变鼠标变成吸管光标样式

};

_root["newColorMC"+i+j+k].onRelease = function():Void {

// 这里获取颜色值,并相应运用

_color = new Color(this);

with (_root["colorShow"]) {

// 用getRGB()函数默认的类型直接传递颜色值

// 查看自带帮助推荐使用以下函数,而不使用getRGB()。:(

// import flash.geom.ColorTransform;

// import flash.geom.Transform;

beginFill(_color.getRGB(),100);

// 用16进制颜色格式

// beginFill("0x"+_color.getRGB().toString(16),100);

moveTo(300,300);

moveTo(300,300);

lineTo(300+100,300+0);

lineTo(300+100,300+100);

lineTo(300+0,300+100);

lineTo(300+0,300+0);

endFill();

}

};

}

}

}

}

// 用黑色线来分隔每个颜色样本格

lineStyle(1,0x000000,100);

for (var m:Number = -1; m<12; m++) {

moveTo(0,10+m*11);

lineTo(11*18,10+m*11);

}

for (var n:Number = -1; n<18; n++) {

moveTo(10+n*11,0);

lineTo(10+n*11,11*12);

}

};

// 以下为模拟取色输出

_root.createEmptyMovieClip("colorShow",_root.getNextHighestDepth());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: