creates中动态改变setStrokeStyle(width)的width值(2018/4/12)

刚开始学习用createjs写页面效果,遇到了一点问题(已解决):

动态设置setStrokeStyle()的值,随着鼠标的拖动,该值并不会有改变。这可能是createjs自身的小问题。

以下即为完整代码,虽然解决方法不是很科学,但结局还算是美好的??????

var S=this
var m //判断当前状态
var g1,g2,sp1,sp2
var arr=["#000000","#FFFF00","#6633FF","#FF33FF","#99FF00","#660066","#FF0066","#666600","#FFCC33","#6699FF"];//存放颜色
var paint=[2,5,7,10];//存放画笔
var _color="#000000";
var paintWidth=2;
//初始化
inIt()
function inIt()
{
//涂鸦
g1=new createjs.Graphics()

g1.setStrokeStyle(paintWidth,"round")
g1.beginStroke(_color)
g1.moveTo($(window).width()+5,$(window).height()+5)
g1.lineTo($(window).width()+6,$(window).height()+6)
g1.endStroke()
sp1 = new createjs.Shape(g1)
S.addChild(sp1)
//橡皮
g2=new createjs.Graphics()
sp2 = new createjs.Shape(g2)
sp2.alpha=.3
S.addChild(sp2)

drawF(g1,sp1)
}
//选择当前画布状态
S.btn.on("click",function(e)
{
if(!m)
{
S.btn.gotoAndStop(1);
m=true;
drawF(g2,sp2)
}
else
{
S.btn.gotoAndStop(0);
m=false;
drawF(g1,sp1)
}
})
//选颜色
for(var i=0;i<10;i++)
{
S.colorBox["c"+i]._id=i
S.colorBox["c"+i].on("mousedown",changeColorF)
}

function changeColorF(e)
{
_color=arr[e.currentTarget._id];
}
//选择笔触
for(var j=0;j<4;j++)
{
S.strokeBox["b"+j]._id=j
S.strokeBox["b"+j].on("mousedown",changeStrokeF)
}
function changeStrokeF(e)
{
paintWidth=paint[e.currentTarget._id]
g1.setStrokeStyle(paintWidth,"round")
g1.beginStroke(_color)
g1.moveTo($(window).width()+5,$(window).height()+5)
g1.lineTo($(window).width()+6,$(window).height()+6)
g1.endStroke()
}
//绘制+橡皮擦
function drawF(g,sp)
{
var startX,startY,moveX,moveY
S.area.hasEventListener("mousedown",downF)?S.area.removeEventListener("mousedown",downF):null
S.area.hasEventListener("pressmove",moveF)?S.area.removeEventListener("pressmove",moveF):null
S.area.hasEventListener("pressup",upF)?S.area.removeEventListener("pressup",upF):null

S.area.addEventListener("mousedown",downF)
S.area.addEventListener("pressmove",moveF)
S.area.addEventListener("pressup",upF)

function downF(e)
{
startX=stage.mouseX;
startY=stage.mouseY;
if(!m)
{
g.beginStroke(_color)
g.setStrokeStyle(paintWidth,"round")
g.moveTo(startX,startY)
}
}
function moveF(e)
{
moveX=stage.mouseX;
moveY=stage.mouseY;
if(moveY<=$(window).height()-150)
{
if(!m)
{
g.lineTo(moveX,moveY)
}else{
g.beginFill("#cccccc").drawCircle(moveX,moveY,20).endFill()
}
S.addChild(sp)
}

}

function upF(e)
{
g.endStroke();
}
}

原文地址:https://www.cnblogs.com/fortunately/p/8806825.html

时间: 2024-10-10 02:22:39

creates中动态改变setStrokeStyle(width)的width值(2018/4/12)的相关文章

WPF 中动态改变控件模板

在某些项目中,可能需要动态的改变控件的模板,例如软件中可以选择不同的主题,在不同的主题下软件界面.控件的样式都会有所不同,这时即可通过改变控件模板的方式实现期望的功能. 基本方法是当用户点击切换主题按钮是加载新的资源字典,并使用新加载的资源字典替代当前的资源字典这时要用到ResourceManager. 假设现有两个不同的资源字典文件Dictionary1.xaml和Dictionary2.xaml存在于Themes文件夹内: 在MainPage中使用其中一个资源字典作为默认样式文件: <Win

代码中动态改变布局属性RelativeLayout.LayoutParams.addRule()

我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的布局排列方式,这时候就需要用到 RelativeLayout.LayoutParams.addRule() 方法,该方法有两种重载方式: addRule(int verb) :用此方法时,所设置节点的属性不能与其它兄弟节点相关联或者属性值为布尔值(布尔值的属性,设置时表示该属性为 true,不设置就

在带(继承)TextView的控件中,在代码中动态更改TextView的文字颜色

今天由于公司项目需求,须要实现一种类似tab的选项卡,当时直接想到的就是使用RadioGroup和RadioButton来实现. 这种方法全然没问题.可是在后来的开发过程中,却遇到了一些困扰非常久的小困难.大概需求是:在代码中.动态的获取tab的个数,然后初始化RadioGroup,每个tab相应一个RadioButton,即加入一个tab就要向RadioGroup中add一个RadioButton,然后在button选中时要更改文字颜色.由于是动态加入,所以无法在xml中配置了RadioBut

Android 动态改变布局属性RelativeLayout.LayoutParams.addRule()

我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的布局排列方式,这时候就需要用到 RelativeLayout.LayoutParams.addRule() 方法,该方法有两种重载方式: addRule(int verb) :用此方法时,所设置节点的属性不能与其它兄弟节点相关联或者属性值为布尔值(布尔值的属性,设置时表示该属性为 true,不设置就

RelativeLayout-代码中设起成员控件width height

今天需要在代码中动态的设置一个textview的width跟height属性,记录下来. textview在xml中的布局如下 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/setup_fragment_padding_bottom_vfive&qu

转--动态改变UITableView中的Cell高度

往往在开发iPhone的应用过程中用得最多的应该算是UITableVIew了,凭着IOS给UITableView赋予了这种灵活的框架结构,让它不管在显示列表方面还是在排版方面都有着一定的优势.虽然UITableView功能强大,但是对于一些复杂的应用需求在开发的过程中会出现一些问题,如动态改变UITableView显示的Cell高度就是其中之一 其实想要改变UITableView的Cell高度并不难,UITableView带有一个rowHeight属性,使用他就可以改变高度了.但是这样的改变是把

C# 设计时动态改变实体在PropertyGrid中显示出来的属性

方法一: /// <summary> /// 实体属性处理 /// </summary> public class PropertyHandle { #region 反射控制只读.可见属性 //SetPropertyVisibility(obj, "名称 ", true); //obj指的就是你的SelectObject, "名称"是你SelectObject的一个属性 //当然,调用这两个方法后,重新SelectObject一下,就可以了.

利用runtime实现延展动态改变模型类中属性的set,get方法

昨天大概的阐述了一下关于构架控制容器的概念,但是如果要丰满这个想法还有很多问题,比如如果我想对一些controller进行管理就势必涉及到controller的加载以及缓存,而想做这些的前提就是构建一个controller表.对表中设定的字符串管理,从而管理对应的controller.传统创建表的方法有很多,最为常用的就是plist文件,但是对于iOS开发的程序员来说,如果这个plist写死,在管理的时候就会比较死板,要知道oc是一门灵活的,动态的语言.如果我们使用NSUserDefaults,

动态改变ToolBar中的MenuItem

最近项目中开始使用到ToolBar控件,其中有需求需要动态改变ToolBar中的MenuItem.如下图: 1.首先想到的办法是利用ToolBar自带的方法addView()和removeView(). 经测试,动态添加和删除view没有点击效果,需要自己添加,而且如果需要overflow效果,则需要自己实现PopupMenu,所以此方法适用于view比较少的情况. 2.ToolBar是用来替换ActionBar的,用过ActionBar的人应该都熟悉ActionMenuView,使用Actio