Flash AS教程:复制粘贴类
Flash AS教程:复制粘贴类
发布时间:2016-12-21 来源:查字典编辑
摘要:源码下载:flash_copy.rar主要代码://定义公共函数。。。classClipBoardextendsObject{staticv...

源码下载: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同级目录下。。。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flash教程学习
热门Flash教程学习
网页设计子分类