此刻问题又来了,这花的颜色不理想,是纯色的,在flash创作工具中还有个叫什么渐变填充的家伙,可以搞出些更好的结果,在AS中同样有这家伙。
beginGradientFill()体例:该体例可实现渐变填充。 参数:fillType: ― 线性渐变用"linear",放射渐变用"radial"。 colors: ― 用于渐变色的 RGB 十六进制颜色值的数组;例如,红色为 0xFF0000,蓝色为 0x0000FF。可以至多指定 15 种颜色。对于每种颜色,请确保在 alphas 和 ratios 参数中指定对应值。 alphas: ― colors 数组中对应颜色的 Alpha 值数组;有用值为 0 到 100。若是值小于 0,则 Flash 利用 0。若是值大于 100,则 Flash 利用 100。 ratios: ― 颜色分布比例数组;有用值为 0 到 255。即渐变中每种颜色的比例值,可以理解为颜色面板中,渐变色的滑块的位置。好比在colors参数为:[0xFF0000,0x0000FF],本参数为:[250,255],那么就相当于在混色器中的这种情况: matrix: ― 一个转换矩阵: flash.geom.Matrix 类包罗 createGradientBox() 体例,经由过程该体例可以便利地设置矩阵,以便用于 MovieClip 类的 beginGradientFill() 体例。 用法:首先需要导入flash.geom.Matrix类 import flash.geom.* 然后,建立一个flash.geom.Matrix类的实例,再挪用createGradientBox体例: matrix = new Matrix(); matrix.createGradientBox(渐变规模的宽,渐变规模的高,扭转, x轴标的目标的偏移量,y轴标的目标的偏移量); x轴标的目标的偏移量:一般为要填充的外形的x减去渐变规模的宽。 y轴标的目标的偏移量:一般为要填充的外形的y减去渐变规模的高。 按照外形可调。 这里边的4个参数想一下渐变填充工具就清楚了。 focalPointRatio: [可选] ― 在 Flash Player 8 中添加。一个数字,节制渐变焦点的位置。值 0 暗示焦点位于中心。值 1 暗示焦点位于渐变圆的一条鸿沟上。值 -1 暗示焦点位于渐变圆的另一条鸿沟上。小于 -1 或大于 1 的值将被舍入为 -1 或 1。
有了这个体例我们就想把那朵花搞成桃花了,利用由红色到粉红色的放射填充。
结果:
代码:
import flash.geom.*; this.createEmptyMovieClip("mh_mc",this.getNextHighestDepth()); mh_mc._x = Stage.width /2; mh_mc._y = Stage.height/2; var color:Array = [0xFF0000,0xfee7f8]; var alph:Array= [100,100]; var rotio:Array = [0,255]; var matrix = new Matrix(); matrix.createGradientBox(40,100,Math.PI,-20,-40);//这里要填充的外形注册点是(0,0)这样就算出了-20,和-40(调整后的) mh_mc.beginGradientFill("radial",color,alph,rotio,matrix); mh_mc.moveTo(0,0); mh_mc.curveTo(-20,-25,-10,-45); mh_mc.curveTo(0,-60,10,-45); mh_mc.curveTo(20,-25,0,0); mh_mc.endFill(); for(i=0;i<5;i++){ mh_mc.duplicateMovieClip("mh"+i,this.getNextHighestDepth()); mh1_mc = eval("mh"+i); mh1_mc._rotation= i*72; } this.createEmptyMovieClip("hz_mc",0); hz_mc._x =Stage.width/2; hz_mc._y = Stage.height/2; hz_mc.lineStyle(6,663333,100); hz_mc.moveTo(0,0); hz_mc.curveTo(-5,110,0,160); this.createEmptyMovieClip("hy_mc",this.getNextHighestDepth()); hy_mc._x =Stage.width/2; hy_mc._y = Stage.height/2; color = [0x0e730d,0x06db2b]; matrix.createGradientBox(60,20,Math.PI,10,50); hy_mc.beginGradientFill("radial",color,alph,rotio,matrix); hy_mc.moveTo(0,70); hy_mc.curveTo(35,40,70,50); hy_mc.curveTo(35,90,0,70); hy_mc.endFill(); hy_mc.duplicateMovieClip("hy1_mc",this.getNextHighestDepth()); hy1_mc._xscale = -100; hy1_mc._x =hy_mc._x -6; hy1_mc._y =hy_mc._y +10;
差不多了,再做两个操练,一个是涂鸦板的建造,一个是动态指导线的结果。
涂雅板的建造:
结果如下,在左边选择颜色和粗细后,可在右边绘图。
按下丹青好图形,并将每个图形转换为MC.
实例名称:
黑色-hs_mc; 红色-hongs_mc; 橙色-cs_mc; 黄色-huans_mc; 绿色-lus_mc; 蓝色_nans_mc; 紫色-zs_mc; 大园-m6_mc; 二园-m4_mc; 三园_m3_mc; 幺园-m1_mc; 新插入一层,打开帧动作面板,输入: var color = 0x000000; var dx =1; var h:Boolean = true; hs_mc.onRelease = function (){ color = 0x000000; } hongs_mc.onRelease = function (){ color = 0xFF0000; } cs_mc.onRelease = function (){ color = 0xFF9900; } huans_mc.onRelease = function (){ color = 0xFFFF00; } lus_mc.onRelease = function (){ color = 0x00FF00; } nans_mc.onRelease = function (){ color = 0x0000FF; } zs_mc.onRelease = function (){ color = 0xFF00FF; } m1_mc.onRelease = function(){ dx = 1; } m3_mc.onRelease = function(){ dx = 3; } m4_mc.onRelease = function(){ dx = 4; } m6_mc.onRelease = function(){ dx = 6; } onMouseDown = function(){ if(_xmouse >170){ h=true; } lineStyle(dx,color,100); moveTo(_xmouse,_ymouse); } onMouseMove = function(){ if(_xmouse <170){ h=false; } if(h){ lineTo(_xmouse,_ymouse); } } onMouseUp= function(){ h=false;; }
鼠绘指导线:
结果如下:用鼠标画一条指导线,小球将按指导线活动.
画一个球,或者你喜好的任何玩意儿,转换为MC,实例名称为:ball_mc. 然后在帧动作面板中输入: var a:Array;
this.onMouseDown = function() { this.lineStyle(1, 0x0000ff, 100); a = new Array(); a.push(_xmouse, _ymouse); this.moveTo(_xmouse, _ymouse); this.onMouseMove = function() { a.push(_xmouse, _ymouse); this.lineTo(_xmouse, _ymouse); }; }; this.onMouseUp = function() { delete this.onMouseMove; var z:Number = new Number(); this.onEnterFrame = function() { ball_mc._x = a[z++]; ball_mc._y = a[z++]; if(z>a.length){ delete onEnterFrame; this.clear(); }; } };
(责任编辑:admin) |