//------------------------------------------------------------------------------------------------ //涂鸦的代码 var drawObj = new Object(); var idx = 1; var pressed = false; drawObj.onMouseDown = function() { createEmptyMovieClip("line"+idx, idx); pressed = true; with ("line"+idx) { lineStyle(1, 0x000000, 100); moveTo(_xmouse, _ymouse); } }; drawObj.onMouseMove = function() { if (pressed) { with ("line"+idx) { lineTo(_xmouse, _ymouse); } } }; drawObj.onMouseUp = function() { pressed = false; idx++; }; Mouse.addListener(drawObj); //------------------------------------------------------------------------------------------------ // 让文本加上底线 MovieClip.prototype.dashTo = function(startPoint, destPoint, dashLength, spaceLength, strok0x, strokWi) { //计算出x, y和距离等所需要的值 var x = destPoint.x-startPoint.x; var y = destPoint.y-startPoint.y; var hyp = Math.sqrt((x)*(x)+(y)*(y)); var units = hyp/(dashLength+spaceLength); var dashSpaceRatio = dashLength/(dashLength+spaceLength); var dashX = (x/units)*dashSpaceRatio; var spaceX = (x/units)-dashX; var dashY = (y/units)*dashSpaceRatio; var spaceY = (y/units)-dashY; //开始设定线的Style this.lineStyle(strokWi, strok0x, 100); //设定开始画线的位置 this.moveTo(startPoint.x, startPoint.y); //使用循环画线一直到结束并输出 :) while (hyp>0) { startPoint.x += dashX; startPoint.y += dashY; hyp -= dashLength; if (hyp<0) { startPoint.x = destPoint.x; startPoint.y = destPoint.y; } this.lineTo(startPoint.x, startPoint.y); startPoint.x += spaceX; startPoint.y += spaceY; this.moveTo(startPoint.x, startPoint.y); hyp -= spaceLength; } this.moveTo(destPoint.x, destPoint.y); }; MovieClip.prototype.newCreateTextField = function(naim, d, x, y, w, h, dLength, sLength, strok0x, strokWi) { //所传递过来的参数先使用前6个参数建立个文本 this.createTextField(naim, d, x, y, w, h); if (dLength != undefined) { //这里是方便大家, 要是没有设定后面的4个参数, 就使用预设值 if (sLength == undefined) { sLength = 5; } if (strok0x == undefined) { strok0x = 0xFF0000; } if (strokWi == undefined) { strokWi = 1; } //上面建立了文本之后就是来开始画线了, 再建立一个prototype dashTo, 当中传递的参数(开始坐标, 结束坐标, 和之前传递过来的最后4个参数) this.dashTo({x:x, y:y+h}, {x:x+w, y:y+h}, dLength, sLength, strok0x, strokWi); } }; //首先是从这里开始...先建立一个prototype叫newCreateTextField()的, 这里的参数是 (实例名, 深度, x坐标, y坐标, 宽度, 高度, 线长度, 空隙长度, 虚线颜色, 线粗) //前面6个参数和普通的建立文本是一样的, 后面的4个参数是设定虚线所需要的参数 this.newCreateTextField("myText", 10, 100, 100, 200, 20, 5, 2, 0xFF0000, 1); myText.type = "input"; myText.text = "底线输入文本"; //------------------------------------------------------------------------------------------------ // Flash传递非英文字或数字的时候, 出现过乱码 String.prototype.encode = function() { //编译部分, 这里使用prototype方便了很多 var s = ""; for (var i = 0; i 1) { //判断n如果大于1就代表是非Flash Player所支援的文字, 而进行导向编译 a[n] = String.fromCharCode(parseInt(s.substring(0, 4), 16)); //取得我们设定的4个字节然后返回16进制之前的code代码, 然后再转换成文字 } } return a.join(""); //最后把数组在此结合起来成一行文字, 并回传 }; //ueage var test = "各国语言的字节都没问题, zzZZ190!@$, 分かりました, ??? ?????, ?????? ???"; var e = test.encode(); trace(e); trace(e.decode()); //------------------------------------------------------------------------------------------------ //用AS绘图命令做一个椭圆半径旋转的动画 createEmptyMovieClip("draw", 1); draw._x = 200; draw._y = 200; var corner = 0; function drawpic() { draw.lineStyle(1, 0x000000, 100); draw.beginFill(0x00CCFF, 100); draw.moveTo(0, 0); draw.lineTo(100, 0); for (var i = 0; i>=-corner; i--) { draw.lineTo(100*Math.cos(i*Math.PI/180), 50*Math.sin(i*Math.PI/180)); } //draw.lineTo(0, 0); draw.endFill(); corner += 10; if (corner>=370) { clearInterval(dragon); } } dragon = setInterval(drawpic, 20);