您现在的位置: 圆点视线 >> 教程 >> flash教程 >> 实例教学 >> 文章正文
[图文]Flash AS代码实例:仿贝塞尔曲线控制           ★★★
Flash AS代码实例:仿贝塞尔曲线控制
作者:闪吧论坛  文章来源:闪吧论坛  点击数:  更新时间:2007-9-4 16:33:44 
 页面功能:【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口 【字体:
 本文中我们用Flash的AS代码来写一段实例,模仿设计软件中贝塞尔曲线的控制。

  下面是完成效果:



用鼠标点击拖动灰色的方形锚点,即可看见曲线的变化(小心不要拖出画面了)

  AS代码如下:

//这个函数是用来绘制线条的
function connect(){
this.clear()
this.lineStyle(3,0x660000,100)
this.moveTo(anchorOne._x,anchorOne._y)
this.curveTo(controlOne._x,controlOne._y,anchorTwo._x,anchorTwo._y)
updateAfterEvent()
}
//这个函数是用来绘制替代描点跟控制点的MC,就绘制一个正方形吧
function createSquare(handle,side,offset){
if(offset==undefines){
  offset=0
}
with(handle){
  moveTo(offset,offset)
  lineTo(offset,side)
  lineTo(side,side)
  lineTo(side,offset)
  lineTo(offset,offset)
  endFill()
}
}
//这是用来控制描点跟控制点的移动,并且用延时,间隔一段时间调用一次绘制线条
function setDraggable(handle){
handle.onPress=function(){
  clearInterval(_global.refreshScreen)
  _global.refreshScreen=setInterval(this._parent,"connect",10)
  this.startDrag(false)
}
handle.onRelease=function(){
  clearInterval(_global.refreshScreen)
  this.stopDrag()
}
handle.onReleaseOutside=function(){
  clearInterval(_global.refreshScreen)
  this.stopDrag()
}
}
//建立描点
anchorOne=createEmptyMovieClip("anchorPoint1",this.getNextHighestDepth())
anchorOne._x=anchorOne._y=50
//填充
anchorOne.beginFill(0xcccccc,100)
//样式
anchorOne.lineStyle(0,0x000000,100,false,false,"none","miter",2)
//调用函数绘制成正方形
createSquare(anchorOne,8,-8)
//调用后方可拖动
setDraggable(anchorOne)
//另一个描点
anchorTwo=createEmptyMovieClip("anchorPoint2",this.getNextHighestDepth())
anchorTwo._x=anchorTwo._y=250
anchorTwo.beginFill(0xcccccc,100)
anchorTwo.lineStyle(0,0x000000,100,false,false,"none","miter",2)
createSquare(anchorTwo,8,-8)
setDraggable(anchorTwo)
//控制点
controlOne=createEmptyMovieClip("control1",this.getNextHighestDepth())
controlOne._x=anchorTwo._x
controlOne._y=anchorOne._y
controlOne.beginFill(0xcccccc,100)
controlOne.lineStyle(0,0x000000,100,false,false,"none","miter",2)
createSquare(controlOne,8,-8)
setDraggable(controlOne)
//最后让线条一开始就显示出来
connect()

  复制粘贴到到吗层,测试即可看到效果。

 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 文章录入:Rainsion    责任编辑:Rainsion  【字体:
 
  • 上一篇文章:

  •  
  • 下一篇文章:
  • 最新文章
    相关文章
    使用html为flash页面添加音乐
    freehand也能做flash动画
    Flash格斗动画[鬼斗]的镜头处理教程
    在flash里获取PHP变量
    Flash+ASP实现电子互动地图在线标注功能
    让Flash调用符合web标准
    Flash实例:鼠标点选不同层次的层叠图片
    Flash AS代码简单实现动态文本包边效果
    用Flash 8 AS代码写摄像头拍照功能
    Flash遮罩轻松制作鼠标弹性跟随放大镜
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
     姓  名: 评 分: 1分 2分 3分 4分 5分
     评论内容: ·严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
    ·用户需对自己在使用本网服务过程中的行为承担法律责任
    ·本站管理员有权保留或删除评论内容。
    ·评论内容只代表机友个人观点,与本网站立场无关。
     
    最 新 推 荐
     
    百度主题推广
    最 新 热 门