Flash教程:复制和粘贴类

点评:源码下载:flash_copy.rar


主要代码:





公共功能的定义…
类剪贴板扩展对象{
静态var $内容:对象;
静态var操作:字符串;
函数剪贴板(){
}
在选择定义/剪切效果时…
公共静态功能降低(obj){
_a OBJ。




源码下载:flash_copy.rar


主要代码:





公共功能的定义…
类剪贴板扩展对象{
静态var $内容:对象;
静态var操作:字符串;
函数剪贴板(){
}
在选择定义/剪切效果时…
公共静态功能降低(obj){
obj。_alpha = 50;
$内容= obj;
$操作;
}
定义复制函数…
公共静态函数复制(obj){
$内容= obj;
$操作;
}
定义删除功能…
公共静态函数删除(obj){
$内容= obj;
=;
contents.removemovieclip美元();
}
定义/顺时针方向…
公共静态函数的旋转(obj){
$内容= obj;
=;
内容_rotation = 45美元;
}
定义逆时针旋转…
公共静态函数旋转(obj){
$内容= obj;
美元=旋转操作;
内容_rotation = 45美元;
}
移动的定义…
私有静态VAR XM:数;
私有静态无功YM:数;
公共静态函数步(obj){
$内容= obj;
美元=步操作;
_root.onmousedown =函数(){
XM = _xmouse;
YM = _ymouse;
movethisit();
};
功能movethisit(){
_root.onenterframe =函数(){
为内容。_x =(XM为内容。_x) / 5;
为内容。_y =(YM为内容。_y) / 5;
如果(math.abs($的内容。_x-xm)<0.5){
_root.onenterframe =定义;
}
};
}
}
定义/刷新…
公共静态函数ReFISH(){
geturl(Javascript:location.reload());
}
定义/粘贴功能…
公共静态函数粘贴(){
如果($ =削减操作){
为内容。_x = _root。_xmouse;
为内容。_y = _root。_ymouse;
内容_alpha = 100美元;
未定义的内容;
= $操作;
否则如果}($操作=复制){
无功newdepth = $()的内容。_parent.getnexthighestdepth;
VaR newname =美元_name newdepth内容;
contents.duplicatemovieclip美元(新名称,newdepth);
为内容。_parent {新}。_x = _root。_xmouse;
为内容。_parent {新}。_y = _root。_ymouse;
内容_alpha = 100美元;
为内容。_parent {新}。_alpha = 100;
否则如果}($操作=删除){
无功newdepth = $()的内容。_parent.getnexthighestdepth;
VaR newname =美元_name newdepth内容;
contents.removemovieclip美元();
{人}
返回;
}
}
公共职能是空的():布尔{
如果(内容)!=未定义的){
返回false;
{人}
返回true;
}
}
公共功能handlemenucommand(obj,项目):无效{
开关(项目,标题){
案例切__x :
切(obj);
打破;
案例复制__c :
复制(obj);
打破;
案例糊__p :
Paste();
打破;
案例删除__d :
删除(obj);
打破;
案例刷新_f5 :
ReFISH();
打破;
案例右转:
旋转(obj);
打破;
案例左转:
旋转(obj);
打破;
案例移动这个球:
步(obj);
打破;
}
}
}





定义右键菜单:


_global美元=新的剪贴板剪贴板。();
功能menucallback(obj,menuobj){
无功空:布尔= _global clipboard.isempty美元();
menuobj.customitems = { };
如果对象是 / /视频剪辑,而不是_root
如果((obj instanceof MovieClip(obj)!= _level0)){
MenuObj.customItems.push(cutitem);
MenuObj.customItems.push(copyitem);
MenuObj.customItems.push(删除);
MenuObj.customItems.push(refish);
MenuObj.customItems.push(旋转);
MenuObj.customItems.push(旋转);
MenuObj.customItems.push(步);
如果(!空){
MenuObj.customItems.push(pasteitem);
MenuObj.customItems.push(refish);
}
else if(obj = = _level0 { }空!)
MenuObj.customItems.push(pasteitem);
MenuObj.customItems.push(refish);
}
}
VaR MyMenu =新的ContextMenu(menucallback);
mymenu.hidebuiltinitems();
无功cutitem =新ContextMenuItem(剪切__x
无功copyitem =新ContextMenuItem(复制 __c
无功pasteitem =新ContextMenuItem(粘贴__p
var删除=新ContextMenuItem(删除__d
无功refish =新ContextMenuItem(刷新_f5
VaR旋转=新ContextMenuItem(右转
VaR旋转=新ContextMenuItem(左转
VaR步=新ContextMenuItem(移动这个球
movieclip.prototype.menu = MyMenu;
this.menu = MyMenu;
停止();


该方法的使用非常简单,直接将MC的生产拖到场景中,然后在MC中添加以下代码:


关于(释放){
StopDrag();
结束行为
}
在(按下){
StartDrag(本);
结束行为
Mx.behaviors.DepthControl.bringToFront(本);
结束行为
}


注意下载的ClipBoard.as类文件被放置在SWF文件目录。