抱歉,如果以前已经回答过,我想我可能在搜索错误的关键字。

我从另一个库在画布上渲染了一个元素。
每次调用stage.update()时,我的所有createJS元素都会在顶部呈现。
但是,该元素需要位于不同的createjs对象之间。

因此,要么我需要找到一种方法将此元素转换为createJs DisplayElement,以将其放置在正确的索引位置。

或者我只需要更新一个容器,而不是整个阶段。

有人可以指出我正确的方向吗?

谢谢

最佳答案

最好的方法是将非EaselJS内容呈现到另一个Canvas上,然后将其用作位图的源。

// Non-EaselJS content (whatever you can imagine!)
var canvas1 = document.getElementById("non-easel-canvas");
var context = canvas1.getContext("2d");
context.doStuffWithCanvasAPIs();

// EaselJS content (red background, blue circle)
var stage = new createjs.Stage("easel-canvas");
var bottom = new createjs.Shape();
bottom.graphics.beginFill("red").drawRect(0,0,800,600);
var top = new createjs.Shape();
top.graphics.beginFill("blue").drawCircle(0,0,25);
top.x = top.y = 100;

// Non-easel content added to Easel
var bmp = new createjs.Bitmap(canvas1);

stage.addChild(bottom, bmp, top);
stage.update();


希望有道理。您也可以相反,并使用drawImage将EaselJS内容绘制到非EaselJS阶段,并将EaselJS画布作为源传递。这是将EaselJS内容混合到three.js之类的方式。

请注意,您也可以直接绘制任何EaselJS内容,而无需放置舞台。每个显示对象(包括Container)都有一个draw()方法,您可以调用该方法,将对象绘制到提供的上下文中。

http://www.createjs.com/docs/easeljs/classes/DisplayObject.html#method_draw

干杯,

关于javascript - 将 Canvas 对象变成createjs元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36980949/

10-12 06:37