`
hgfghww
  • 浏览: 40805 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

flash as画线的代码

阅读更多

要增加或更改数组里的点就可以画线了。当然也可以和其他程序结合使用
var point = new Array();
point[0] = [100, 200];
point[1] = [300, 300];
point[2] = [100, 100];
point[3] = [200, 400];
var x = point[0][0];
var y = point[0][1];
var i = 1;
createEmptyMovieClip("line", 1);
line.lineStyle(1, 0x0000FF, 100);
line.moveTo(point[0][0], point[0][1]);
line.onEnterFrame = function() {
    if (x != point[i][0] && y != point[i][1]) {
    x = (x
[1b]代码解析:[/1b]
首先,先建立个叫point的数组,用来存放各个点的信息...这里是加了四个点,当然你可以随便修改里面的值,或是随便增加其他的点,不过注意按顺序排列哦,不然就得加个排序进去..
var point = new Array();
point[0] = [100, 200];
point[1] = [300, 300];
point[2] = [100, 100];
point[3] = [200, 400];
定义x和y的初始值为point的第一个元素里的值...以及定义i为1
var x = point[0][0];
var y = point[0][1];
var i = 1;
开始画线的程序了,创造个空的MC,并命名为line,放在第一层上
createEmptyMovieClip("line", 1);
设置线的属性,宽度为1,颜色是纯蓝色,透明度为100,也就是不透明,你可以按照自己的喜好来更改这里的属性
line.lineStyle(1, 0x0000FF, 100);
在line里定义起点为数组第一个元素里的两个值
line.moveTo(point[0][0], point[0][1]);
开始运算...
line.onEnterFrame = function() {
当x和y都没到达目标的时候,继续画下去
if (x != point[i][0] && y != point[i][1]) {
        这里是个不太好理解的条件表达式...人懒没办法,也就是说当?前面的条件为真时,为x赋值,相当于x=x+1,条件不成立时x=x-1,下面的道理都一样
        x = (x
至于y坐标,就需要用到相似三角形的原理了:

y = (x-point[i-1][0])*(point[i][1]-point[i-1][1])/(point[i][0]-point[i-1][0])+point[i-1][1];
 line画到这里,x,y轴就是对应x,y的值,
this.lineTo(x, y);
 某个点到达目标了,比如y到达了y轴的值,那么y就该停止,而x继续运算,所以我们必须写出下面的东西...
    } else if (x != point[i][0]) {
        x = (x         this.lineTo(x, y);
 这里是和上面x的道理是一样的..表说你看不懂..-___-b
    } else if (y != point[i][1]) {
        y = (y         this.lineTo(x, y);
当x,y都到达目标,那么,就该向下一个点出发了,所以i++以后就变成了2,给循环的时候取数组里第二个元素里面的东西
    } else if (i
i++;
    咳咳,所有的点都跑完了,那么该画个圆满的句号,把onEnterFrame事件删除吧.    } else {
        delete this.onEnterFrame;
    }
};
当然,你也可以在这里让线返回到开始的点,怎么画呢?自己试一下吧,编程并不像你想象中的那么难,只是一个逻辑的过程而已,呵呵,第一次写教程,还望各位大虾指教一下...
 
下载源文件
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/236.html
分享到:
评论

相关推荐

    FLASH AS 简易涂鸦板(带本地保存功能与撤消上一步功能)

    涂鸦画线功能我是直接从FLASH帮助文件中考贝出来的,我在涂鸦功能的基础上添加了本地保存和撤消的功能 。(代码可以扩展成自定义线条粗细,自定义线条颜色,透明度等等。还可以添加新的数据用来记录被撤消的步聚,...

    [Flash.ActionScript.3.0动画教程

    [Flash.ActionScript.3.0动画教程],这是一本由Keith Peters编写的一本动画设计教材,此书要求读者对as2.0要有比较深的了解,主要讲解的是动画相关的原理。绝对有价值的一本书。 目录如下: 第一部分ActionScript...

    画线,对象拖动,自定义鼠标

    这就是一个实验,试试各种方法.是FashCS4的文件.写代码用FlashDevelop写的. 只有一个Fla文件,代码差不多全是事件侦听与取消.加了一些注释,但愿能看懂.

    flash shiti

    16.lash能将ASCII代码转换成对应的字符,也可以返回字符对应的ASCII码。Chr表示什么? A. 转换ASCII码为字符 B. 转换字符为ASCII码 C. 转换字符为海明码 D. 转换海明码为字符 17.Flash 菜单File→Print的快捷...

    线性+小球动画Flash

    摘要:Flash源码,其它应用,线性动画 线性+小球动画Flash源码,那条线会随着鼠标的移动改变线的形状、伸缩度、曲率等,线内的小球会随着线形的改变自动落体或下滑,小球还有缓冲效果,本款动画看似简单,但AS脚本发挥...

    iTween for Unity3D,unity3d缓动类

    如果你经常使用Flash AS,你就会知道Tween这个词,AS中也有很多Tween(过渡动画) 的功能代码。 特点: 可能很多人不理解,既然2.6版本有了动画编辑器,为什么还需要用这个动画脚本呢?原因很简单,iTween最大的特点就是...

    iTween unity3d

    如果你经常使用Flash AS,你就会知道Tween这个词,AS中也有很多Tween(过渡动画) 的功能代码。 特点: 可能很多人不理解,既然2.6版本有了动画编辑器,为什么还需要用这个动画脚本呢?原因很简单,iTween最大的特点就是...

    SimpleAnimation:一个创建复杂动画的 JavaScript 库,简单

    语法应该保持不变,如果你仔细查看代码,请记住有替代的,类似于 jQuery 的语法),但它的内部工作方式可能会改变,直到 1.0 版本,计划于 2012 年年中发布。希望你喜欢这个和可以为之做出贡献!概述Simple...

    vc++ 开发实例源码包

    FlashPlayer播放器4.0的VC++源代码 如题。 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例026 使用as关键字将对象转换为指定类型 32 2.4 流程控制语句的使用 34 实例027 小明去学校和医院分别要走哪条路 34 实例028 利用条件语句判断用户登录身份 35 实例029 判断指定月份属于哪个季节 36 实例030 使用...

Global site tag (gtag.js) - Google Analytics