piccom.as
来自「使用 Flex进行文件操作 从而达到最高的文件效能」· AS 代码 · 共 394 行
AS
394 行
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.DropShadowFilter;
import mx.controls.Alert;
import mx.controls.Image;
import mx.controls.Label;
import mx.controls.Text;
import mx.core.UIComponent;
import mx.effects.Tween;
import mx.effects.easing.*;
public class PicCom extends UIComponent
{
private var i:int=0;
private var img:Image;
private var lab:Label;
public var pic:String;
public var nm:String;
private var sp:Sprite;
private var sp2:Sprite;
private var sp3:Sprite;
private var sp4:Sprite;
private var tx2:Text;
private var tx3:Text;
private var tx4:Text;
private var start:Number;
private var R:Number=50;
private var r:Number=15;
private var X:Number;
private var Y:Number;
public function PicCom()
{
super();
}
override protected function createChildren():void
{
super.createChildren();
sp=new Sprite();
sp.addEventListener(MouseEvent.CLICK,spc);
sp2=new Sprite();
sp3=new Sprite();
sp4=new Sprite();
sp2.alpha=0.6;
sp3.alpha=0.6;
sp4.alpha=0.6;
tx2=new Text();
tx3=new Text();
tx4=new Text();
tx2.text="查看";
tx3.text="编辑";
tx4.text="删除";
tx2.visible=false;
tx3.visible=false;
tx4.visible=false;
sp.addEventListener(MouseEvent.MOUSE_OVER,ov);
sp.addEventListener(MouseEvent.MOUSE_OUT,ou);
sp2.addEventListener(MouseEvent.MOUSE_OVER,ov);
sp2.addEventListener(MouseEvent.MOUSE_OUT,ou);
sp3.addEventListener(MouseEvent.MOUSE_OVER,ov);
sp3.addEventListener(MouseEvent.MOUSE_OUT,ou);
sp4.addEventListener(MouseEvent.MOUSE_OVER,ov);
sp4.addEventListener(MouseEvent.MOUSE_OUT,ou);
sp2.addEventListener(MouseEvent.CLICK,sp2c);
sp3.addEventListener(MouseEvent.CLICK,sp3c);
sp4.addEventListener(MouseEvent.CLICK,sp4c);
img=new Image();
img.source=pic;
lab=new Label();
lab.text=nm;
addChild(img);
addChild(lab);
addChild(tx2);
addChild(tx3);
addChild(tx4);
addChild(sp2);
addChild(sp3);
addChild(sp4);
addChild(sp);
}
internal function ou(e:MouseEvent):void
{
var p:Sprite=e.target as Sprite;
p.filters=[getBitmapFilter()];
}
internal function ov(e:MouseEvent):void
{
var p:Sprite=e.target as Sprite;
p.filters=[getBitmapFilter(),getDropShadowFilter()];
}
internal function sp2c(e:MouseEvent):void
{
//查看
}
internal function sp3c(e:MouseEvent):void
{
/* **************编辑******************* */
/* **************编辑******************* */
}
internal function sp4c(e:MouseEvent):void
{
/* ***************删除******************* */
/* ***************删除******************* */
}
internal function spc(e:Event):void
{
trace(i);
if(i==0)
{
ss();
i++;
}
else
{
if(i%2==1)
{
sp2.visible=false;
sp3.visible=false;
sp4.visible=false;
tx2.visible=false;
tx3.visible=false;
tx4.visible=false;
}
if(i%2==0)
{
sp2.visible=true;
sp3.visible=true;
sp4.visible=true;
tx2.visible=true;
tx3.visible=true;
tx4.visible=true;
}
i++;
}
}
internal function ss():void
{
var listener:Object =new Object();
listener.onTweenUpdate=function(val:Object):void
{
var angle:Number=val as Number;
drawsp120(angle);
}
listener.onTweenEnd=function(val:Object):void
{
sss();
}
var tween:Tween = new Tween(listener,0,120,100);
tween.easingFunction =Quartic.easeInOut;
}
internal function sss():void
{
var listener:Object =new Object();
listener.onTweenUpdate=function(val:Object):void
{
var angle:Number=val as Number;
drawsp240(angle);
}
listener.onTweenEnd=function(val:Object):void
{
ssss();
}
var tween:Tween = new Tween(listener,0,120,100);
tween.easingFunction =Quartic.easeInOut;
}
internal function ssss():void
{
var listener:Object =new Object();
listener.onTweenUpdate=function(val:Object):void
{
var angle:Number=val as Number;
drawsp360(angle);
}
listener.onTweenEnd=function(val:Object):void
{
}
var tween:Tween = new Tween(listener,0,120,100);
tween.easingFunction =Quartic.easeInOut;
}
override protected function measure():void
{
super.measure();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth,unscaledHeight);
img.width=100;
img.height=100;
img.x=-img.width/2;
img.y=-img.height/2;
lab.width=100;
lab.height=50;
lab.x=-img.width/2;
lab.y=img.height/2;
X=unscaledWidth-img.width/2;
Y=unscaledHeight-img.height/2;
tx2.width=30;
tx2.height=30;
tx3.width=30;
tx3.height=30;
tx4.width=30;
tx4.height=30;
tx2.x=X;
tx2.y=Y-35;
tx3.x=X-45;
tx3.y=Y-15;
tx4.x=X+8;
tx4.y=Y+15;
sp2.filters=[getBitmapFilter()];
sp3.filters=[getBitmapFilter()];
sp4.filters=[getBitmapFilter()];
drawCircle();
}
internal function drawCircle():void
{
sp.graphics.lineStyle(1);
sp.graphics.beginFill(0xFFaaFF);
sp.graphics.drawCircle(X,Y,10);
}
internal function drawsp120(angle:Number):void
{
var anglee:Number=angle;
var start:Number=0;
var n:Number=Math.ceil(Math.abs(anglee)/45);
var an:Number=Math.abs(anglee)/n;
//trace(an);
//trace(start);
an=an*Math.PI/180;
start=start*Math.PI/180;
//sp.graphics.lineStyle(1);
sp2.graphics.lineStyle(1);
sp2.graphics.beginFill(0x0066FF,1.0);
//初始到内圆起点
sp2.graphics.moveTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//连接到外圆起点
sp2.graphics.lineTo(X+Math.cos(start)*R,Y-Math.sin(start)*R);
// 反旋画线。。。。。。。
for(var i:int=1;i<=n;i++)
{
//trace("i");
sp2.graphics.curveTo(X+Math.cos(an/2+start)*R/Math.cos(an/2),Y-Math.sin(an/2+start)*R/Math.cos(an/2),X+Math.cos(an+start)*R,Y-Math.sin(an+start)*R);
start=start+an;
}
//连接到内圆
sp2.graphics.lineTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//正旋画线。。。
for(var j:int=1;j<=n;j++)
{
sp2.graphics.curveTo(X+Math.cos(start-an/2)*r/Math.cos(an/2),Y-Math.sin(start-an/2)*r/Math.cos(an/2),X+Math.cos(start-an)*r,Y-Math.sin(start-an)*r);
start=start-an;
}
sp2.graphics.endFill();
tx2.visible=true;
}
internal function drawsp240(angle:Number):void
{
var anglee:Number=angle;
var start:Number=120;
var n:Number=Math.ceil(Math.abs(anglee)/45);
var an:Number=Math.abs(anglee)/n;
//trace(an);
//trace(start);
an=an*Math.PI/180;
start=start*Math.PI/180;
//sp.graphics.lineStyle(1);
sp3.graphics.lineStyle(1);
sp3.graphics.beginFill(0xff66FF,1.0);
//初始到内圆起点
sp3.graphics.moveTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//连接到外圆起点
sp3.graphics.lineTo(X+Math.cos(start)*R,Y-Math.sin(start)*R);
// 反旋画线。。。。。。。
for(var i:int=1;i<=n;i++)
{
//trace("i");
sp3.graphics.curveTo(X+Math.cos(an/2+start)*R/Math.cos(an/2),Y-Math.sin(an/2+start)*R/Math.cos(an/2),X+Math.cos(an+start)*R,Y-Math.sin(an+start)*R);
start=start+an;
}
//连接到内圆
sp3.graphics.lineTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//正旋画线。。。
for(var j:int=1;j<=n;j++)
{
sp3.graphics.curveTo(X+Math.cos(start-an/2)*r/Math.cos(an/2),Y-Math.sin(start-an/2)*r/Math.cos(an/2),X+Math.cos(start-an)*r,Y-Math.sin(start-an)*r);
start=start-an;
}
sp3.graphics.endFill();
tx3.visible=true;
}
internal function drawsp360(angle:Number):void
{
var anglee:Number=angle;
var start:Number=240;
var n:Number=Math.ceil(Math.abs(anglee)/45);
var an:Number=Math.abs(anglee)/n;
//trace(an);
//trace(start);
an=an*Math.PI/180;
start=start*Math.PI/180;
//sp.graphics.lineStyle(1);
sp4.graphics.lineStyle(1);
sp4.graphics.beginFill(0xbb66FF,1.0);
//初始到内圆起点
sp4.graphics.moveTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//连接到外圆起点
sp4.graphics.lineTo(X+Math.cos(start)*R,Y-Math.sin(start)*R);
// 反旋画线。。。。。。。
for(var i:int=1;i<=n;i++)
{
//trace("i");
sp4.graphics.curveTo(X+Math.cos(an/2+start)*R/Math.cos(an/2),Y-Math.sin(an/2+start)*R/Math.cos(an/2),X+Math.cos(an+start)*R,Y-Math.sin(an+start)*R);
start=start+an;
}
//连接到内圆
sp4.graphics.lineTo(X+Math.cos(start)*r,Y-Math.sin(start)*r);
//正旋画线。。。
for(var j:int=1;j<=n;j++)
{
sp4.graphics.curveTo(X+Math.cos(start-an/2)*r/Math.cos(an/2),Y-Math.sin(start-an/2)*r/Math.cos(an/2),X+Math.cos(start-an)*r,Y-Math.sin(start-an)*r);
start=start-an;
}
sp4.graphics.endFill();
tx4.visible=true;
}
private function getBitmapFilter():BitmapFilter {
var color:Number = 0xFFFFFF;
var angle:Number =90;
var alpha:Number = 0.9;
var blurX:Number = 8;
var blurY:Number = 8;
var distance:Number =15;
var strength:Number = 0.8;
var inner:Boolean =true;
var knockout:Boolean =false;
var quality:Number = BitmapFilterQuality.HIGH;
return new DropShadowFilter(distance,
angle,
color,
alpha,
blurX,
blurY,
strength,
quality,
inner,
knockout);
}
private function getDropShadowFilter():BitmapFilter
{
var color:Number = 0x000000;
var angle:Number = 45;
var alpha:Number = 0.9;
var blurX:Number = 5;
var blurY:Number = 5;
var distance:Number = 5;
var strength:Number = 0.9;
var inner:Boolean = false;
var knockout:Boolean = false;
var quality:Number = BitmapFilterQuality.LOW;
return new DropShadowFilter(distance,angle,color,alpha,blurX,blurY,strength,quality,inner,knockout);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?