论文部分内容阅读
在多媒体网络教学环境中,一些学科经常要用到各种工具在课件上进行实验,这就需要能在课件中对各种工具进行灵活的操作,需要进行的操作通常有拖动、旋转。在Flash中,拖动操作比较容易实现,而要实现灵活的旋转就需要动一动脑筋。下面以数学课中用“量角器”测量角的度数为例,提供一种在“实验型课件”中让实验工具自由移动和旋转的方法。
首先启动Flash,选择创建新Flash文档,然后将第一层重命名为“题”,在第一帧上使用“文本工具”输入问题,用“线条工具”绘制几个不同大小不同方向的角。(如图1所示)
在插入菜单选择“新元件”,插入名称为“点”的影片剪辑元件,在影片剪辑的中心位置绘制一个红色的小圆点。同样,插入一个名称为“量角器”的影片剪辑元件,将它的第一层重命名为“量角器”,在第一帧上绘制一个量角器。注意,一定要把量角器的圆心与影片剪辑的中心对齐。这样,才能保证旋转量角器时以圆心为中心转动。在“量角器”元件里插入一个新层将其重命名为“点”,从库中将“点”影片剪辑元件拖动到量角器的一角上。(如图2所示)
单击选择红色圆点,在属性面板中将实例名称命名为“b”。(如图3所示)
选择实例“b”(小红点),右击在快捷菜单中选择“复制”命令,然后在“编辑”菜单中选择“粘贴到当前位置”,选中这个新的小红点,在属性面板中将其命名为“a”。这样,实例“a”和实例“b”两个小红点正好重合。右击选择“粘贴”命令,又出现一个小红点,将其拖动到量角器的圆心上,并在属性面板中将其命名为“o”。
返回主场景,新建一个图层将其命名为“量角器”,从库中将“量角器”影片剪辑拖动到舞台上,并在属性面板中将其命名为“ljq”。(如图4所示)
双击量角器,打开“量角器”影片剪辑,在第一帧上添加如下语句:
stop();
//变量n用于保存旋转的角度
n=0;
//使实例b不可见
b._visible=false;
//创建drawline自定义函数,用于a,b两点间画线;
function drawline(){
//先清除画面内容
clear();
//设置线条样式
lineStyle(1,0xcc6622,50);
//设定线条的开始点;
moveTo(o._x,o._y);
//绘制直线段,连接实例a,b;
lineTo(a._x,a._y);
}
function rotation(){
//下面三句为计算出以实例o,a,b为顶点的三角形三边的长,
l1=Math.sqrt(Math.pow(a._x-o._x,2) Math.pow(a._y-o._y,2));
l2=Math.sqrt(Math.pow(b._x-o._x,2) Math.pow(b._y-o._y,2));
l3=Math.sqrt(Math.pow(b._x-a._x,2) Math.pow(b._y-a._y,2));
//用余弦定理计算出角aob的余弦值,并计算出角aob的弧度
x=Math.acos((Math.pow(l1,2) Math.pow(l2,2)-Math.pow(l3,2))/(2*l1*l2));
//以下两句用直线方程,算出旋转的方向
y4=(b._y-o._y)/(b._x-o._x)*a._x (o._y*b._x-b._y*o._x)/(b._x-o._x);
if((b._x>o._x
首先启动Flash,选择创建新Flash文档,然后将第一层重命名为“题”,在第一帧上使用“文本工具”输入问题,用“线条工具”绘制几个不同大小不同方向的角。(如图1所示)
在插入菜单选择“新元件”,插入名称为“点”的影片剪辑元件,在影片剪辑的中心位置绘制一个红色的小圆点。同样,插入一个名称为“量角器”的影片剪辑元件,将它的第一层重命名为“量角器”,在第一帧上绘制一个量角器。注意,一定要把量角器的圆心与影片剪辑的中心对齐。这样,才能保证旋转量角器时以圆心为中心转动。在“量角器”元件里插入一个新层将其重命名为“点”,从库中将“点”影片剪辑元件拖动到量角器的一角上。(如图2所示)
单击选择红色圆点,在属性面板中将实例名称命名为“b”。(如图3所示)
选择实例“b”(小红点),右击在快捷菜单中选择“复制”命令,然后在“编辑”菜单中选择“粘贴到当前位置”,选中这个新的小红点,在属性面板中将其命名为“a”。这样,实例“a”和实例“b”两个小红点正好重合。右击选择“粘贴”命令,又出现一个小红点,将其拖动到量角器的圆心上,并在属性面板中将其命名为“o”。

返回主场景,新建一个图层将其命名为“量角器”,从库中将“量角器”影片剪辑拖动到舞台上,并在属性面板中将其命名为“ljq”。(如图4所示)
双击量角器,打开“量角器”影片剪辑,在第一帧上添加如下语句:
stop();
//变量n用于保存旋转的角度
n=0;
//使实例b不可见
b._visible=false;
//创建drawline自定义函数,用于a,b两点间画线;
function drawline(){
//先清除画面内容
clear();
//设置线条样式
lineStyle(1,0xcc6622,50);
//设定线条的开始点;
moveTo(o._x,o._y);
//绘制直线段,连接实例a,b;
lineTo(a._x,a._y);
}
function rotation(){
//下面三句为计算出以实例o,a,b为顶点的三角形三边的长,
l1=Math.sqrt(Math.pow(a._x-o._x,2) Math.pow(a._y-o._y,2));
l2=Math.sqrt(Math.pow(b._x-o._x,2) Math.pow(b._y-o._y,2));
l3=Math.sqrt(Math.pow(b._x-a._x,2) Math.pow(b._y-a._y,2));
//用余弦定理计算出角aob的余弦值,并计算出角aob的弧度
x=Math.acos((Math.pow(l1,2) Math.pow(l2,2)-Math.pow(l3,2))/(2*l1*l2));
//以下两句用直线方程,算出旋转的方向
y4=(b._y-o._y)/(b._x-o._x)*a._x (o._y*b._x-b._y*o._x)/(b._x-o._x);
if((b._x>o._x