收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画实例 >> 正文
用AS打造复制粘贴等功能类         
用AS打造复制粘贴等功能类
作者:taoshaw 文章来源:闪吧 点击数:1333 更新时间:2010-12-19 23:02:45

演示:

源码:http://www.taoshaw.com/flash/flash_copy/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同级目录下。。。

[1] [2]  下一页

文章录入:晴天    责任编辑:清水洗尘 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长