当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash AS教程:复制粘贴类

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 Flash AS教程:复制粘贴类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 47 ::
收藏到网摘: n/a

源码下载:flash_copy.rar
主要代码

//定义公共函数。。。
class ClipBoard extends Object {
static var $contents:Object;
static var $operation:String;
function ClipBoard() {
}
//定义当选择剪切时的效果。。。
public static function cut(obj) {
obj._alpha = 50;
$contents = obj;
$operation = "cut";
}
//定义复制函数。。。
public static function copy(obj) {
$contents = obj;
$operation = "copy";
}
//定义删除函数。。。
public static function remove(obj) {
$contents = obj;
$operation = "remove";
$contents.removeMovieClip();
}
//定义顺时针旋转。。。
public static function rotation(obj) {
$contents = obj;
$operation = "rotation";
$contents._rotation  = 45;
}
//定义逆时针旋转。。。
public static function rotation2(obj) {
$contents = obj;
$operation = "rotation2";
$contents._rotation -= 45;
}
//定义移动。。。
private static var xm:Number;
private static var ym:Number;
public static function movethis(obj) {
$contents = obj;
$operation = "movethis";
_root.onMouseDown = function() {
xm = _xmouse;
ym = _ymouse;
movethisit();
};
function movethisit() {
_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;
}
};
}
}
//定义刷新。。。
public static function refish() {
getURL("javascript:location.reload()");
}
//定义粘贴功能。。。
public static function paste() {
if ($operation == "cut") {
$contents._x = _root._xmouse;
$contents._y = _root._ymouse;
$contents._alpha = 100;
$contents = undefined;
$operation = "";
} else if ($operation == "copy") {
var newdepth = $contents._parent.getNextHighestDepth();
var newname = $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;
} else if ($operation == "remove") {
var newdepth = $contents._parent.getNextHighestDepth();
var newname = $contents._name newdepth;
$contents.removeMovieClip("");
} else {
return;
}
}
public function isEmpty():Boolean {
if ($contents != undefined) {
return false;
} else {
return true;
}
}
public function handleMenuCommand(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;
}
}
}

定义右键菜单
_global.$clipboard = new ClipBoard();
function menuCallback(obj, menuObj) {
var empty:Boolean = _global.$clipboard.isEmpty();
menuObj.customItems = [];
// 如果对象为影片剪辑,而不是 _root
if ((obj instanceof MovieClip) && (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);
}
} else if (obj == _level0 && !empty) {
menuObj.customItems.push(pasteItem);
menuObj.customItems.push(refish);
}
}
var myMenu = new ContextMenu(menuCallback);
myMenu.hideBuiltInItems();
var cutItem = new ContextMenuItem("剪切__X", _global.$clipboard.handleMenuCommand);
var copyItem = new ContextMenuItem("复制__C", _global.$clipboard.handleMenuCommand);
var pasteItem = new ContextMenuItem("粘贴__P", _global.$clipboard.handleMenuCommand);
var remove = new ContextMenuItem("删除__D", _global.$clipboard.handleMenuCommand);
var refish = new ContextMenuItem("刷新_F5", _global.$clipboard.handleMenuCommand);
var rotation = new ContextMenuItem("往右旋转", _global.$clipboard.handleMenuCommand);
var rotation2 = new ContextMenuItem("往左旋转", _global.$clipboard.handleMenuCommand);
var movethis = new ContextMenuItem("移动此球", _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同级目录下。。。