主页  范文大全   设计学院   SEO研究   免费资源   网赚大全  QQ资源区    电影下载  在线电影   短信&笑话   校内网   理财知识   站长Blog   访客留言   顶级QQ百科

         声明:本站所有资料素材均是由站长精心整理搜集的,属于原创。我们同意您的转载和复制,但是在转载复制时请保留文字出处。本站资料全部免费使用,无需注册,力求打造华北最强最大的免费资源网站。

前面基础篇里我们讨论了怎么设置指定的颜色觉得不能算是很难但是一位朋友通过qq告诉他觉得有一点吃力对此我很抱歉以前一直觉得有些ction的基础问题是不用多解释的,大家查查参考手册就是现在看来朋友们的实际情况还是差别很大以后会在这些方面注意一些每一个新语句都加上注释

  上次说得是颜色设置的基础,代码实际上只有两三句,从现在看时我们来继续说说颜色问题的一些深入问题,大概代码会逐渐的多起来写的不明白的地方大家结合提供源文件看一下或者在后面跟贴提问

今天这一讲教程咱们看看随机颜色问题,这个问题论坛上常有讨论算是个老问题了

觉得实现随机颜色最简单一句就是:
mycolor = new Color(this);
//新建一个color对象,名字是mycolor指定mc是它本身
mycolor.setRGB(random(0xffffff));
//mycolor对象设置RGB颜色取色范围是从0到0xffffff随机

  好像已经没有办法使代码更少了吧?如果有告诉我这一篇教程里面随机比较多,每一个都单独做swf很麻烦于是干脆做到一起来用区域来区别并且提供了flash源文件大家那提供的代码替换掉ball这个mc里action,可以自己预览一下看看还可以自己随便做做修改看看这一段代码是区域1

页面:点这儿参观
源码(6K):
colortest1.zip

  但是觉得这样最不好的方面在于得到很多色彩效果可能不太好,比如太接近白色不容易和背景区别或者颜色太深了感觉不美观

如果们希望颜色分布在一个区间之内比如不希望出现接近红色颜色好办:
mycolor = new Color(this);
mycolor.setRGB(random(0x80ffff));
(区域2)

  因为红色是最大的一位但是不希望出现接近绿色,可就不能random(0xff80ff)了不信你自己改改试试这是因为在random函数看来0x00ff00也是比0xff80ff小没办法了吧

  的改进方法是三色分别random然后再用“左移 << ”和“或 | ”方法组合成一个数值这种方法我在基础篇就用过觉得算不得新方法了这是全色系随机函数:
mycolor = new Color(this);
mycolor.setRGB(random(255)<<16|random(255)<<8|random(255));
(区域3)

  如果仅仅是这样用,和开始那种方法比,除了显得深奥实在是没什么优点了不过们想再进一步做修改就容易了,刚才那个不要绿色就可以:
mycolor = new Color(this);
mycolor.setRGB(random(255)<<16|random(128)<<8|random(255));
(区域4)

  如果想得到红色0xff0000和黄色0xffff00之间颜色,因为红色和黄色之间只有g在改变,可以把r和b固定仅仅random绿色:
mycolor = new Color(this);
mycolor.setRGB(255<<16|random(255)<<8|0);
(区域5)

  再比如不希望得到太深颜色,只需要使random值不要太小比如rgb三色加起来不小于384吧:
mycolor = new Color(this);
while (r+g+b<384) {
    r = random(255);
    g = random(255);
    b = random(255);
}
//默认rgb都为0,循环执行;如果rgb相加小于384,继续random直到r+g+b大于等于384
mycolor.setRGB(r << 16 | g << 8 | b);
(区域6)

  怎么样?这下看出三色分别计算方便地方来了吧最后举了好多好多例子,大家还可以继续举下去就不一一生成swf文件给大家看看了源码大家自己动手DIY吧

  下次们来说说怎么做根据一个数值的变化得到连续的颜色变化就像染色的地形图似那种再说说怎么用action实现计算机上像彩虹那样的呈现赤橙黄绿青蓝紫连续变化色谱还是那句话——请大家拭目以待

教程录入:xxYsh.com    责任编辑:admin 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

推荐链接