一个用纯AS写的正态曲线画法-网站制作-3P代码网
繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> Flash教程 >> 一个用纯AS写的正态曲线画法

一个用纯AS写的正态曲线画法

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介: 点击浏览该文件 点击浏览该文件 我的这段AS写了不少有用的函数,如画按钮函数,画坐标轴函数,画框架函数.这些函数都有很强的移植性,以后都可以直接拿来用; //================按钮和坐标轴上的文字=============...
关键字:画法 曲线 一个

点击浏览该文件

点击浏览该文件

我的这段AS写了不少有用的函数,如画按钮函数,画坐标轴函数,画框架函数.这些函数都有很强的移植性,以后都可以直接拿来用;

//================按钮和坐标轴上的文字=====================//

mytxt = ["开始", "暂停", "清除", "全屏", "退出", "继续"];

myNum = ["-30", "-20", "-10", "0", "10", "20", "30", "X", "Y"];

//=====画按钮(type不为0时按钮为凸起状态type=0时按钮为凹下状态)=====//

CommandButton = function (mc, t, type) {

c = 0xffffff;//按钮左和上边框颜色

c1 = 0x000000;//按钮右和下边框颜色

mc.createTextField("txt", 700, 12, 1, 27, 18);

if (!type) {

c = 0x000000;

c1 = 0xffffff; //type=0时左和上与右和下边框颜色交换;

mc.createTextField("txt", 700, 13, 2, 27, 18);//按下时文本框向左下移,使字有凹下感觉

}

with (mc) {

moveTo(0, 20);

lineStyle(1, c, 100);

beginFill(0xD1DEE9);

lineTo(0, 0);

lineTo(50, 0);

lineStyle(1, c1, 100);

lineTo(50, 20);

lineTo(0, 20);

endFill();

txt.text = t;

}

};

//===========画框架=============//

display = function (mc, x, y, w, h, txt, corl) {

with (mc) {

moveTo(x, y);

lineStyle(0.5, 0x00000, 100);

beginFill(corl, 40);

lineTo(x+w, y);

lineTo(x+w, y+h);

lineTo(x, y+h);

lineTo(x, y);

endFill();

createTextField("name", 300, x+2, y-17, 0, 0);

name.autoSize = "left";

name.selectable = false;

name.border = true;

name.background = true;

name.backgroundColor = 0x798DA6;

name.textColor = 0xffffff;

name.text = txt;

}

};

//========画坐标轴上刻度及数字==============//

dial = function (mc, len, corl, txt, type) {

with (mc) {

moveTo(0, 0);

lineStyle(0.25, corl, 100);

if (type) {//type不为0时刻度坚着画,为0时刻度横着画;

lineTo(0, len);

createTextField("num", 600, -7, len+1, 0, 0);

} else {

lineTo(len, 0);

createTextField("num", 600, len+1, -2, 0, 0);

}

num.autoSize = true;

num.selectable = false;

num.text = txt;

}

};

//========画坐标轴============//

coordinate = function (x, y) {

_root.moveTo(x-215, y);

_root.lineStyle(0.25, 0x00000, 100);

_root.lineTo(x+215, y);

_root.lineTo(x+185, y+5);

_root.moveTo(x+215, y);

_root.lineTo(x+185, y-5);

_root.moveTo(x, y+20);

_root.lineTo(x, y-220);

_root.lineTo(x-5, y-190);

_root.moveTo(x, y-220);

_root.lineTo(x+5, y-190);

for (i=0; i<19; i++) {

_root.createEmptyMovieClip("l"+i, 510+i);

if (i12) {//同上

!(i%2) ? dial(_root["l"+i], 5, 0xff0000, myNum[i/2-3], 0) : dial(_root["l"+i], 3, 0x000000, "", 0);

_root["l"+i]._x = x;

_root["l"+i]._y = y-33*(i-12);

}

}

_root.createTextField("Xt", 250, x+220, y-3, 18, 18);

_root.createTextField("Yt", 260, x, y-230, 18, 18);

Xt.text = myNum[7];

Xt.selectable = false;

Yt.text = myNum[8];

Yt.selectable = false;

};

inputBoxs = function (x, y) {

var alpha = ["u =", "0", "o =", "1"];

for (i=0; i<4; i++) {

_root.createTextField("v"+i, 800+i, x+i*35, y, 30, 16);

if (i%2) {

_root["v"+i].type = "input";

_root["v"+i].border = true;

_root["v"+i].text = alpha[i];

} else {

_root["v"+i].autoSize = "right";

_root["v"+i].selectable = false;

_root["v"+i].text = alpha[i];

}

}

};

//======写标题========//

headline = function (x, y, txt, dx) {

_root.createTextField("title", 900, x, y, 0, 0);

title.autoSize = true;

title.selectable = false;

title.text = txt;

mytxf = new TextFormat();//创建一个文本格式对象;

mytxf.size = dx;//太小

mytxf.color = 0xff0000;//颜色

mytxf.underline = true;//下划线

title.setTextFormat(mytxf);

};

//=====开始画线函数====//

startDraw = function () {

m = Number(v1.text);

n = Number(v3.text);//把v1,v3文本框中的值给m,n;

x = -200;

_root.createEmptyMovieClip("xian", 300);

xian.moveTo(-200, 100);

xian._x = 275;

xian._y = 193;

_root.onEnterFrame = function() {

a = -(100/(Math.sqrt(2*Math.PI)*25*n))*Math.exp((-(Math.pow((x-100*m), 2)))/ (2*Math.pow(25*n, 2)));//这个为正态曲线公式,根椐这个公式来画线;

with (xian) {

lineStyle(2, 0xE001E0, 100);

lineTo(x, 50*a+100);//画线

if (x<=200) {//画线范围

x += 3;//3为画线速度,建议设小一点,fps设大一点,这样使画出的线更平滑;

}

}

};

_root.btn1.enabled = 1;//暂停按钮可用

_root.btn5.enabled = 1;//继续按钮可用

};

//========继续画线========//

continueDraw = function () {

xian.moveTo(x-3, 50*a+100);//x,a继承上面函数的值,从当前位置画

_root.onEnterFrame = function() {

a = -(100/(Math.sqrt(2*Math.PI)*25*n))*Math.exp((-(Math.pow((x-100*m), 2)))/ (2*Math.pow(25*n, 2)));

with (xian) {

lineStyle(2, 0xE001E0, 100);

lineTo(x, 50*a+100);

if (x<=200) {

x += 3;//同上

}

}

};

};

//========暂停和清除函数==========//

pause_clear = function (k) {//不为0时为暂停,为0时为清除;

_root.onEnterFrame = function() {

x += 0;//x值不增加

};

if (k) {

xian.clear();//清除xian

_root.btn1.enabled = 0;

_root.btn5.enabled = 0;

}

};

_root.onLoad = function() {

headline(230, 20, "正态曲线", 20);

for (i=0; i<3; i++) {

_root.createEmptyMovieClip("frame"+i, 400+i);

}

display(_root.frame0, 40, 55, 470, 270, "显示", 0xE6E1CC);

display(_root.frame1, 40, 350, 160, 40, "变量", 0xDCE6ED);

display(_root.frame2, 220, 350, 290, 40, "操作", 0xDCE6ED);

coordinate(275, 295);

inputBoxs(50, 365);

_root.attachMovie("formula", "formula", 500);

formula.useHandCursor = false;//鼠标不变手形

formula._x = 42;

formula._y = 57;

for (i=0; i<6; i++) {

_root.createEmptyMovieClip("btn"+i, 700+i);

CommandButton(_root["btn"+i], mytxt[i], 1);//用循环来画按钮;

_root["btn"+i]._x = 230+55*i;

_root["btn"+i]._y = 360;

_root.btn5._x = 230+55*1;

_root.btn5._y = 360;

_root.btn5._visible = 0;//设置按钮位置,并把暂停和继续按钮放在一起;且开始时继续不可见

}

_root.btn1.enabled = 0;//开始时暂停不可用

};

_root.onEnterFrame = function() {//以下为按上每个按钮的动作;

_root.btn0.onPress = function() {

CommandButton(_root.btn0, mytxt[0], 0);//按鼠标时按钮凹下;

_root.btn1._visible = 1;//暂停按钮可见

_root.btn5._visible = 0;继续按钮不可见

startDraw();//调用开始画线函数;

};

_root.btn0.onRelease = function() {

CommandButton(_root.btn0, mytxt[0], 1);//松开鼠标时按钮凸起;

};

_root.btn1.onPress = function() {

CommandButton(_root.btn1, mytxt[1], 0);

pause_clear(0);//调用暂停

};

_root.btn1.onRelease = function() {

CommandButton(_root.btn1, mytxt[1], 1);

_root.btn1._visible = 0;

_root.btn5._visible = 1;//按了暂停按钮时,变成继续按钮;

};

_root.btn2.onPress = function() {

CommandButton(_root.btn2, mytxt[2], 0);

pause_clear(1);//调用清除函数;

};

_root.btn2.onRelease = function() {

CommandButton(_root.btn2, mytxt[2], 1);

};

_root.btn3.onPress = function() {

CommandButton(_root.btn3, mytxt[3], 0);

fscommand("fullscreen", true);//全屏

};

_root.btn3.onRelease = function() {

CommandButton(_root.btn3, mytxt[3], 1);

};

_root.btn4.onPress = function() {

CommandButton(_root.btn4, mytxt[4], 0);

fscommand("quit");//退出

};

_root.btn4.onRelease = function() {

CommandButton(_root.btn4, mytxt[4], 1);

};

_root.btn5.onPress = function() {

CommandButton(_root.btn5, mytxt[5], 0);

continueDraw();//调用继续画线函数;

};

_root.btn5.onRelease = function() {

CommandButton(_root.btn5, mytxt[5], 1);

_root.btn5._visible = 0;

_root.btn1._visible = 1;//按继续按钮时,变成暂停按钮;

};

_root.formula.onRollOver = function() {

formula._xscale = formula._yscale=330;//放大尺寸;

};

_root.formula.onRollOut = function() {

formula._xscale = formula._yscale=100;//尺寸还原

};

};

责任编辑:admin
相关文章