主要代码:
复制代码 代码如下:
//定义公共函数。。。
classClipBoardextendsObject{
staticvar$contents:Object;
staticvar$operation:String;
functionClipBoard(){
}
//定义当选择剪切时的效果。。。
publicstaticfunctioncut(obj){
obj._alpha=50;
$contents=obj;
$operation="cut";
}
//定义复制函数。。。
publicstaticfunctioncopy(obj){
$contents=obj;
$operation="copy";
}
//定义删除函数。。。
publicstaticfunctionremove(obj){
$contents=obj;
$operation="remove";
$contents.removeMovieClip();
}
//定义顺时针旋转。。。
publicstaticfunctionrotation(obj){
$contents=obj;
$operation="rotation";
$contents._rotation+=45;
}
//定义逆时针旋转。。。
publicstaticfunctionrotation2(obj){
$contents=obj;
$operation="rotation2";
$contents._rotation-=45;
}
//定义移动。。。
privatestaticvarxm:Number;
privatestaticvarym:Number;
publicstaticfunctionmovethis(obj){
$contents=obj;
$operation="movethis";
_root.onMouseDown=function(){
xm=_xmouse;
ym=_ymouse;
movethisit();
};
functionmovethisit(){
_root.onEnterFrame=function(){
$contents._x+=(xm-$contents._x)/5;
$contents._y+=(ym-$contents._y)/5;
if(Math.abs($contents._x-xm)<0.5){
_root.onEnterFrame=undefined;
}
};
}
}
//定义刷新。。。
publicstaticfunctionrefish(){
getURL("javascript:location.reload()");
}
//定义粘贴功能。。。
publicstaticfunctionpaste(){
if($operation=="cut"){
$contents._x=_root._xmouse;
$contents._y=_root._ymouse;
$contents._alpha=100;
$contents=undefined;
$operation="";
}elseif($operation=="copy"){
varnewdepth=$contents._parent.getNextHighestDepth();
varnewname=$contents._name+newdepth;
$contents.duplicateMovieClip(newname,newdepth);
$contents._parent[newname]._x=_root._xmouse;
$contents._parent[newname]._y=_root._ymouse;
$contents._alpha=100;
$contents._parent[newname]._alpha=100;
}elseif($operation=="remove"){
varnewdepth=$contents._parent.getNextHighestDepth();
varnewname=$contents._name+newdepth;
$contents.removeMovieClip("");
}else{
return;
}
}
publicfunctionisEmpty():Boolean{
if($contents!=undefined){
returnfalse;
}else{
returntrue;
}
}
publicfunctionhandleMenuCommand(obj,item):Void{
switch(item.caption){
case"剪切__X":
cut(obj);
break;
case"复制__C":
copy(obj);
break;
case"粘贴__P":
paste();
break;
case"删除__D":
remove(obj);
break;
case"刷新_F5":
refish();
break;
case"往右旋转":
rotation(obj);
break;
case"往左旋转":
rotation2(obj);
break;
case"移动此球":
movethis(obj);
break;
}
}
}
定义右键菜单:
QUOTE:
复制代码 代码如下:
_global.$clipboard=newClipBoard();
functionmenuCallback(obj,menuObj){
varempty:Boolean=_global.$clipboard.isEmpty();
menuObj.customItems=[];
//如果对象为影片剪辑,而不是_root
if((objinstanceofMovieClip)&&(obj!=_level0)){
menuObj.customItems.push(cutItem);
menuObj.customItems.push(copyItem);
menuObj.customItems.push(remove);
menuObj.customItems.push(refish);
menuObj.customItems.push(rotation);
menuObj.customItems.push(rotation2);
menuObj.customItems.push(movethis);
if(!empty){
menuObj.customItems.push(pasteItem);
menuObj.customItems.push(refish);
}
}elseif(obj==_level0&&!empty){
menuObj.customItems.push(pasteItem);
menuObj.customItems.push(refish);
}
}
varmyMenu=newContextMenu(menuCallback);
myMenu.hideBuiltInItems();
varcutItem=newContextMenuItem("剪切__X",_global.$clipboard.handleMenuCommand);
varcopyItem=newContextMenuItem("复制__C",_global.$clipboard.handleMenuCommand);
varpasteItem=newContextMenuItem("粘贴__P",_global.$clipboard.handleMenuCommand);
varremove=newContextMenuItem("删除__D",_global.$clipboard.handleMenuCommand);
varrefish=newContextMenuItem("刷新_F5",_global.$clipboard.handleMenuCommand);
varrotation=newContextMenuItem("往右旋转",_global.$clipboard.handleMenuCommand);
varrotation2=newContextMenuItem("往左旋转",_global.$clipboard.handleMenuCommand);
varmovethis=newContextMenuItem("移动此球",_global.$clipboard.handleMenuCommand);
MovieClip.prototype.menu=myMenu;
this.menu=myMenu;
stop();
使用方法很简单,直接将制作好的MC拖入场景,然后在MC中加入如下代码:
复制代码 代码如下:
on(release){
stopDrag();
//结束行为
}
on(press){
startDrag(this);
//结束行为
mx.behaviors.DepthControl.bringToFront(this);
//结束行为
}
注意下载的“ClipBoard.as”类文件,要放在SWF同级目录下。。。
打包下载