Flash中的AS绘画方法学习笔记_2

      技术迷 2004-7-20 14:11
如何在Flash课件中实现如PP的画笔注释功能?--Flash中的AS绘画方法学习笔记_2
一直想在自己的Flash课件中加入如同PP那样的画笔功能(可以做注释用),但是,没时间琢磨……

今天下午在自己研究Flash AS绘画方法的基础上,结合Flash2004中自定义右键菜单的办法,做了一个效果出来,虽然还有不足之处,也算告一段落吧,继续完善……

笔记:
1、功能还不够完善,在PP中,除了能够在“箭头”与“画笔”模式中选择外,还可以选择画笔的颜色,这一点未能加入。
2、右键菜单不完美,不能够做到如一般程序菜单中选择项那样,用“√”来表示是否选中,所以只好用了列出两个菜单项,通过是否可用来切换的变通方法,:-(希望能够找到简洁的方法改进。
3、本来想通过分别加入“画笔模式”“√画笔模式”两个菜单项,并设定myMenu.customItems[0] = true 或 false的办法来隐藏选中的菜单,达到上述的目的,但是不成功,原因未明。
4、myPen.clear();的使用,不但清除绘画的内容,而且连画笔的线条样式定义也归零了,所以必须在myPen.onMouseDown = function() {}中重新定义kk = 0xff0000;    myPen.lineStyle(2, kk, 100);这一点也花了我一些时间。

以下是程序代码:

//AS on Frame1
//Auth: luscky@hotmail.com
//Ver:1.0
//Date:2004年7月20日

myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
myMenu.builtInItems.quality = true;
myMenu.customItems.push(new ContextMenuItem("指针→画笔", mouseToPen));
myMenu.customItems.push(new ContextMenuItem("画笔→指针", penToMouse));
myMenu.customItems[1].enabled = false;
_root.menu = myMenu;
//
function mouseToPen() {
    myMenu.customItems[0].enabled = false;
    myMenu.customItems[1].enabled = true;
}
function penToMouse() {
    myMenu.customItems[0].enabled = true;
    myMenu.customItems[1].enabled = false;
}
//自定义右键菜单,保留“品质”菜单项,加入指针与画笔切换项
_root.createEmptyMovieClip("myPen", 1);
myPen.onMouseDown = function() {
    kk = 0xff0000;
    myPen.lineStyle(2, kk, 100);
    myPen.moveTo(_xmouse, _ymouse);
    isDrawing = true;
};
myPen.onMouseMove = function() {
    if ((isDrawing == true) && (!myMenu.customItems[0].enabled)) {
        myPen.lineTo(_xmouse, _ymouse);
        updateAfterEvent();
    }
};
myPen.onMouseUp = function() {
    isDrawing = false;
};
//绘画程序
clear_btn.onRelease = function() {
    myPen.clear();
};
//清除绘画内容


Flash 动画
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}
}