分类

安卓应用安卓游戏攻略资讯

首页>资讯教程>Flash

Flash 3d效果精彩实例--互动线框

作者:flashsj   来源: JZ5U整理   日期:2014/12/22 11:26:41
  本实例中一对立体的线框会不断旋转运动,并且可以感应到鼠标的活动,从而产生运动的变化,本实例最终效果如图1所示;


图1 最终效果


  1.首先启动Flash,新建一个影片,设置影片舞台大小为400px*300px(单位为象素),设置影片背景色为浅黄色,颜色代码为#FFCC00.

  2.将影片默认的图层重命名为BackLine,为了使线框的运动能比较明显的看出来,可以给影片背景加一些参照物,这里我们给影片添加一个简单的坐标系统.使用直线工具和文本工具绘制如图2所示的坐标系统,这个左边系统比较简单,你也可以根据自己的需要来修改:


图2 绘制坐标系统


  3.接下来制作组成线框的直线部分.新建一个影片剪辑元件,命名为line,进入元件的编辑区后,使用直线工具绘制一条水平直线即可,如图3所示;


图3 绘制直线


  4.因为影片中线框和鼠标会发生感应,需要得到类似鼠标坐标这样的信息,所以还需要建立一个空的影片剪辑,然后用鼠标对其拖动,只要得到这个空剪辑的坐标,就相当于得到拉鼠标的坐标,这也是Flash动画中常用到的小技巧,这里我们就建立影片剪辑run,里面什么都不用设置,空的即可.

  5.回到主场景,新建一个图层命名为line,然后将元件run拖到场景中的任意位置,在属性面板中设置其实例名为run,如图4所示;


图4 给空剪辑设置实例名


  6.接下来还需要将元件line拖到舞台中,因为影片中的线框其实是用一些直线借助Action来生成的,而影片中一共两个线框,每个线框四条边,这样就需要分8次将直线line拖到工作区中,注意不要拖到舞台中,不然在最后的影片中会被看到,如图5所示;


图5 在影片中添加直线


  7.同样需要给每条直线设置实例名,按照从上向下的顺序分别设置8条直线为line1到line8,最后在第1帧添加如下action:

center_x=200;

center_y=150;

d= 500;

function drawline (x1,y1,z1,x2,y2,z2,num) {

x1=(x1/(z1+d))*d;

y1=(y1/(z1+d))*d;

x2=(x2/(z2+d))*d;

y2=(y2/(z2+d))*d;

x1 += center_x;

y1 = center_y - y1;

x2 += center_x;

y2 = center_y - y2;

dx= x2 - x1;

dy= y2 - y1;

line_length = Math.sqrt(dx*dx+dy*dy);

angle = Math.atan(dy/dx);

angle = angle*180/Math.PI;

setProperty ("line" add num, _x, x1);

setProperty ("line" add num, _y, y1);

if (dx < 0){

angle = angle-180;

}

setProperty ("line" add num, _rotation, angle);

setProperty ("line" add num, _xscale, line_length);

}

////////////////////////

px = new Array(8)

py = new Array(8)

pz = new Array(8)

px[0] = 100;

py[0] = 100;

pz[0] = 25;

px[1] = -100;

py[1] = 100;

pz[1] = 25;

px[2] = -100;

py[2] = -100;

pz[2] = 25;

px[3] = 100;

py[3] = -100;

pz[3] = 25;

px[4] = 100;

py[4] = 100;

pz[4] = -25;

px[5] = -100;

py[5] = 100;

pz[5] = -25;

px[6] = -100;

py[6] = -100;

pz[6] = -25;

px[7] = 100;

py[7] = -100;

pz[7] = -25;

文章推荐

应用推荐

网友评论