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

ActionScript
FLASH AS3与网页JS参数值传递的问题
Flash AS3的parameters对象处理网页参数
Flash教程 认识Flash ActionScript的环境
Flash ActionScript编程基础
Flash AS3代码实现鼠标跟随喷枪涂鸦效果
falsh 跨域调用配置
Flash AS3.0 实例教程 喷泉动画特效
AS3 Loader与URLLoader的比较
ColorTransform类调整显示对象的颜色值
Flash AS3 快速制作烟雾动画
Flash AS3 制作文字飞出动画
ActionScript 学习小心得
ActionScript3.0读取网页FlashVars中的参数的问题
通过实例学习AS3.0:案例三
通过实例学习Flash AS3.0:案例四
通过实例学习Flash AS3.0:案例五
通过实例学习Flash AS3.0:案例六
Flash教程:认识Flash ActionScript的环境
Flash as入门(1):认识AS面板
Flash as入门(3):AS基本语法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 58 ::
收藏到网摘: 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同级目录下。。。