今天有点累,不多想写东西,就是当练习。
贝塞尔曲线,也不用多介绍,不过这个东西还有很多没加入去的。今天允许我懒一点。不想解释了。
测试玩玩。具体的没有什么功能,其实还有很多种情况没加入去。等待完善
package
{
//贝塞尔曲线
import flash.display.Sprite;
import flash.events.*;
import flash.geom.*;
public class Main extends Sprite
{
private var pen:Sprite=new Sprite();
private var circleA:CirclePoint;
private var circleB:CirclePoint;
private var circleC:CirclePoint;
public function Main()
{
init();
}
//初始化
private function init():void
{
drawGrid(20,30,16,16);//绘制网格
addChild(pen);
pen.graphics.lineStyle(1,0xff0000);
pen.graphics.moveTo(100,300);
pen.graphics.curveTo(100,100,400,10);
circleA=new CirclePoint();
circleA.addEventListener(MouseEvent.MOUSE_DOWN,circle_DragHandler);
addChild(circleA);
circleA.x=100;
circleA.y=300;
circleB=circleA.clone();
circleB.addEventListener(MouseEvent.MOUSE_DOWN,circle_DragHandler);
addChild(circleB);
circleB.x=400;
circleB.y=10;
circleC=circleA.clone();
circleC.addEventListener(MouseEvent.MOUSE_DOWN,circle_DragHandler);
addChild(circleC);
circleC.x=100;
circleC.y=100;
pen.graphics.moveTo(circleA.x,circleA.y);
pen.graphics.lineTo(circleC.x,circleC.y);
pen.graphics.moveTo(circleB.x,circleB.y);
pen.graphics.lineTo(circleC.x,circleC.y);
stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler);
}
private function circle_DragHandler(event:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler);
event.currentTarget.startDrag(false,new Rectangle(10,10,460,300));//控制拖动区间
}
private function onMouseMoveHandler(event:MouseEvent):void
{
redraw();
}
private function onMouseUpHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler);
circleA.stopDrag();
ci
经daquan提醒,发现听雨对于上传的flash文件的脚本没有处理,用户能够利用上传的flash的脚本功能(比如带有geturl动作的flash)实现自动跳转到某个站点。
到北邮人论坛参考了一下,发现他们有对flash脚本的禁用,于是借鉴北邮人的做法,对听雨的flash附件脚本动作进行了处理,具体做法如下:
改动之前的代码:
<objec ......