Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将画布对象转换为createjs元素_Javascript_Canvas_Createjs_Easeljs - Fatal编程技术网

Javascript 将画布对象转换为createjs元素

Javascript 将画布对象转换为createjs元素,javascript,canvas,createjs,easeljs,Javascript,Canvas,Createjs,Easeljs,抱歉,如果以前有人回答过,我想我可能是在搜索错误的关键字 我在画布上呈现了另一个库中的元素。 每次调用stage.update()时,所有我的createJS元素都会呈现在顶部。 但是,元素需要位于不同的createjs对象之间 因此,我需要找到一种方法,将这个元素转换为createjsdisplayElement,以将其置于正确的索引位置 或者我只需要更新一个容器,而不是整个阶段 有人能给我指出正确的方向吗 谢谢你这里有两个选择: 不要使用其他库,只使用EaselJS …或… 使用多张画布 因

抱歉,如果以前有人回答过,我想我可能是在搜索错误的关键字

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

因此,我需要找到一种方法,将这个元素转换为createjsdisplayElement,以将其置于正确的索引位置

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

有人能给我指出正确的方向吗


谢谢你这里有两个选择:

不要使用其他库,只使用EaselJS

…或…

使用多张画布


因为您需要将这个图形对象堆叠在两个easeljs对象之间,所以您需要三个画布来完成您要做的事情,以及两个easeljs阶段。不过,对于一个奇怪的问题来说,这是一个很难解决的问题。

最好的方法是将非EaselJS内容渲染到另一个画布上,然后将其用作位图的源

// 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内容,而无需阶段。每个显示对象(包括容器)都有一个
draw()
方法,可以调用该方法,将对象绘制到提供的上下文中

干杯