📄 samplespider.as
字号:
package org.kingda.book.display
{
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class SampleSpider extends Sprite
{
private var __Spider:Class;
private var spider:MovieClip;
private var line:Sprite;
private var speed:Number = 10;
public function SampleSpider(){
initView();
this.addEventListener(Event.ENTER_FRAME, drawLine);
this.addEventListener(Event.ENTER_FRAME, moveSpider);
//鼠标点击后,停止侦听ENTER_FRAME事件
this.stage.addEventListener(MouseEvent.CLICK, stopAnimation);
}
private function initView():void {
//获取库元件自动绑定的类
__Spider = getDefinitionByName("Spider_mc") as Class;
//生成线的容器
line = new Sprite();
addChild(line);
spider = new __Spider();
addChild(spider);
spider.cacheAsBitmap = true; //打开位图缓存,提高执行效率
}
//在每帧中,重新绘制蛛丝
private function drawLine(evt:Event):void {
line.graphics.clear(); //清空
line.graphics.moveTo(0, 0);
line.graphics.lineStyle(1, 0xffffff, 100);
line.graphics.lineTo(spider.x, spider.y);
}
//在每帧中,移动和旋转蜘蛛
private function moveSpider(evt:Event):void {
var dx:Number = this.mouseX - spider.x;
var dy:Number = this.mouseY - spider.y;
var p:Number =Math.atan(dy/dx)*180/Math.PI;
var rotateAngle:Number = (dx>0) ? (90+p):(270+p);
spider.x += dx/speed;
spider.rotation = rotateAngle;
spider.y += dy/speed;
}
private function stopAnimation(evt:MouseEvent):void {
this.removeEventListener(Event.ENTER_FRAME, drawLine);
this.removeEventListener(Event.ENTER_FRAME, moveSpider);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -