随手写的flex画板

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init(event)"
minWidth="955" minHeight="600" layout="vertical" xmlns:local="*">
<mx:Script>
<![CDATA[
import mx.controls.Image;
import mx.controls.PopUpButton;
import mx.events.FlexEvent;
import mx.graphics.codec.JPEGEncoder;
import mx.managers.PopUpManager;
private  var isMouseDown:Boolean;
private var thickness:Number=1;
private var color:uint=0x000000;
private var alphas:Number=1;
private var pixelHinting:Boolean=true;
private var scaleMode:String=LineScaleMode.HORIZONTAL;
private var caps:String=CapsStyle.NONE;
private var joins:String=JointStyle.ROUND;
private var miterLimit:Number=3;

[Bindable]private var mX:Number=0;
[Bindable]private var mY:Number=0;

private function mouseDownHandlers(event:MouseEvent):void
{
if(event.buttonDown)
isMouseDown=true;

mX=event.localX;
mY=event.localY;

canva.graphics.lineStyle(thickness,color,alphas
,pixelHinting,scaleMode,caps,joins,miterLimit);

canva.graphics.moveTo(mX,mY);//这句如果去掉就成了一笔画
}

private function mouseUpHandlers(event:MouseEvent):void
{
if(!event.buttonDown)
isMouseDown=false;
}

private function mouseMoveHandlers(event:MouseEvent):void
{
if(isMouseDown)
{
mX=event.localX;
mY=event.localY;
canva.graphics.lineTo(mX,mY);
}
}

private function exportToImage():void
{
var fileReference:FileReference=new FileReference;
var bitMapData:BitmapData=new BitmapData(canva.width,canva.height);
bitMapData.draw(canva);
var bitMap:Bitmap=new Bitmap(bitMapData);
var bitArray:ByteArray=new JPEGEncoder().encode(bitMapData);
}

protected function init(event:FlexEvent):void
{
var ptw:PaintToolWin=PopUpManager.createPopUp(this,PaintToolWin) as PaintToolWin;
ptw.y=(canva.height-ptw.height)/2+canva.y;
ptw.x=canva.width-ptw.width+canva.x;
}

]]>
</mx:Script>

<mx:RadioButtonGroup id="rbg" change="{caps=rbg.selectedValue.toString()}"/>

<mx:HBox width="100%" horizontalAlign="center">
<mx:Label text="x:{mX} y:{mY}"/>
<mx:Label text="颜色"/>
<mx:ColorPicker id="cp" change="{color=cp.selectedColor}"/>
<mx:Label text="粗细"/>
<mx:HSlider id="vs" change="{thickness=vs.value}" minimum="0" maximum="100"/>
<mx:Label text="透明度"/>
<mx:HSlider id="vs1" change="{alpha=vs1.value}" minimum="0" maximum="1"/>
<mx:Label text="笔触形状"/>
<mx:RadioButton groupName="rbg" label="圆形" value="{CapsStyle.ROUND}"/>
<mx:RadioButton groupName="rbg" label="方形"  value="{CapsStyle.SQUARE}"/>
<mx:RadioButton groupName="rbg" label="无"  value="{CapsStyle.NONE}"/>
</mx:HBox>
<mx:Canvas id="canva" width="100%" height="100%" borderColor="red" borderStyle="solid"
  borderThickness="2" mouseChildren="true" mouseDown="mouseDownHandlers(event)"
  mouseMove="mouseMoveHandlers(event)" mouseUp="mouseUpHandlers(event)">
</mx:Canvas>
</mx:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值