Flex拖拽 Canvas容器里拖动Box
2009-02-18
缩略显示
Flex拖拽-Canvas容器里拖动Box
文章分类:Web前端关键字: flex, flex拖拽, canvas, box
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.core.IUIComponent;
import mx.containers.Box;
import mx.containers.Canvas;
import mx.events.DragEvent;
import mx.managers.DragManager;
import mx.core.DragSource;
import mx.core.UIComponent;
private static const FORMAT:String = "box";
private function boxMouseDownHandler(evt:MouseEvent):void{
var iu:IUIComponent = evt.currentTarget as IUIComponent;
var dragSource:DragSource = new DragSource();
dragSource.addData( iu, FORMAT );
DragManager.doDrag( iu, dragSource, evt );
}
private function canvasDragEnterHandler(evt:DragEvent):void{
if(evt.dragSource.hasFormat(FORMAT)){
DragManager.acceptDragDrop(Canvas(evt.currentTarget));
}
}
private function canvasDragHandler(evt:DragEvent):void{
var box:Box = Box(evt.dragInitiator);
box.x = evt.localX;
box.y = evt.localY;
}
]]>
</mx:Script>
<mx:Canvas backgroundColor="0xEEEEEE" width="500" height="200" horizontalCenter="0" verticalCenter="0" dragEnter="canvasDragEnterHandler(event)" dragDrop="canvasDragHandler(event)">
<mx:Box width="20" height="20" backgroundColor="0x00FFCC" x="137" y="66" mouseDown="boxMouseDownHandler(event);"></mx:Box>
</mx:Canvas>
</mx:WindowedApplication>
当<mx:Box>发出mouseDown事件时,boxMouseDownHandler 方法被调用并且拖拽源数据被增加到DragManager。
canvasDragEnterHandler检查拖拽源的格式
释放时canvasDragHandler方法改变拖拽源的位置
相关文档:
Windows
设置环Path境变量,加入flex的SDk的bin目录路径,如:f:\flex_sdk_3\bin。设置好了之后,打开命令行,定位到项目目录,输入如下命令:mxmlc 项目名.mxml。如果此时出现了“Error:could not find JVM”,这时需要手动指定JRE路径,打开Flex3 SDK的bin目录,用文本编辑器打开jvm. ......
flex和C++服务器通信。因为安全沙漏问题,当swf位于A服务器,C++服务器程序位于B服务器时。
这时swf和B服务器建立Socket建立连接会产生跨域问题。
解决方法如下
swf建立socket时会先发起一个请求跨域文件的请求:"<policy-file-request/>"
服务器接收到后发送字符串
<?xml version="1.0"?>
<cross-doma ......
1.复制内容到系统剪贴板
System.setClipboard(strContent);
2.复制一个ArrayCollection
//dummy solution( well, it works )
var bar:ArrayCollection = new ArrayCollection();
for each ( var i:Object in ac ){
bar.addItem( ......
最近项目需要运用到FLEX,但GOOGLE一下发现可用的资料实在太少了。
找了好久发现google code上在这个还不错,还有很多东西可以好好研究研究
http://code.google.com/p/as3gif/
下面的例子是将动态GIF绑定到SPRITE上
package com.render
{
import flash.display.Sprite;
import flash.events.IOErr ......