0

我有一个 .fla 文件,其中有用于在男孩画中更改皮肤、头发和衬衫颜色的符号。当我用 CreateJS 导出它时,我得到了这个:

// 1Hair
this.shape_226 = new cjs.Shape();
this.shape_226.graphics.f("#FCDEC4").s().p("AA").cp();
this.shape_226.setTransform(0.1,-95.3);`

在那里你可以看到代表头发颜色的颜色(#FCDEC4),我尝试将颜色替换为一个变量(boyHair),就像这样

// 1Hair
this.shape_226 = new cjs.Shape();
this.shape_226.graphics.f(boyHair).s().p("AA").cp();
this.shape_226.setTransform(0.1,-95.3);`

这是生成文件的init函数

//Modified from exported file of Flash Toolkit for CreateJS
var canvas, stage, exportRoot;
function init() {
    canvas=document.getElementById("canvas");
    exportRoot=new lib.characters();

    stage=new createjs.Stage(canvas);
    stage.addChild(exportRoot);
    stage.update();

    createjs.Ticker.setFPS(24);
    createjs.Ticker.addListener(stage);
}

我在我的主 JavaScript 文件上设置值,如下所示:

var boyHair="#000000";

并且第一次工作(我猜是在初始化阶段)但是如果我稍后在代码中修改该值,它对画布绘制没有影响,我尝试过stage.update()但它什么也没做。

你知道是否有办法动态地改变这些颜色吗?

提前致谢

4

2 回答 2

1

尝试做这样的事情

 var canvas, stage, exportRoot;
function init() 
{
canvas=document.getElementById("canvas");
exportRoot=new lib.characters();
stage=new createjs.Stage(canvas);
stage.addChild(exportRoot);
createjs.Ticker.setFPS(24);
createjs.Ticker.addEventListener ("tick", tick);
}
 tick =function()
 {
     var boyHair="#000000";
     stage.update();
 }
于 2013-07-24T04:38:38.693 回答
0

目前没有办法 - 当颜色发生变化时,您必须重建您的形状。

于 2013-02-22T22:04:06.680 回答