Fabric.js 1.7.12 发布,简易 JavaScript Canvas 库

Fabric.js 1.7.12 已发布,Fabric.js 是一款简单而强大的 JavaScript Canvas 库,在 HTML5 Canvas 元素之上提供了互动的对象模型,同时还包含 Canvas-to-SVG 解析器。

使用 Fabric.js 你可以创建和填充画布上的对象,从简单的几何图形到成百上千路径组成的复杂图形。你可以通过鼠标轻松的移动、缩放和旋转这些对象,修改它们的属性(颜色、透明度,层叠顺序)等等。

image

更新内容:

Fix: removed possible memleaks from window resize event. #3984
Fix: restored default cursor to noTarget only. unselectable objects get the standard hovercursor. #3953
Cache fixes: fix uncached pathGroup, removed cache creation at initialize time #3982
Improvement: nextTarget to mouseOut and prevTarget to mouseOver #3900
Improvement: add isClick boolean to left mouse up #3898
Fix: can start selection on top of non selectable object #3892
Improvement: better management of right/middle click #3888
Fix: subTargetCheck on activeObject/activeGroup was firing too many events #3909
Fix: After addWithUpdate or removeWithUpdate object coords must be updated. #3911

首先,需要在Android中导入Rhino,可以使用以下代码添加依赖项: ```gradle dependencies { implementation 'org.mozilla:rhino:1.7.12' } ``` 然后,可以使用以下代码读取/sdcard/test.js文件中的JavaScript代码,并将其传递给Rhino解释器: ```java Context rhino = Context.enter(); rhino.setOptimizationLevel(-1); Scriptable scope = rhino.initStandardObjects(); File file = new File(Environment.getExternalStorageDirectory(), "test.js"); Reader reader = new FileReader(file); rhino.evaluateReader(scope, reader, "test", 1, null); ``` 在这段代码中,我们使用`Context.enter()`方法创建了一个Rhino上下文,设置了优化级别,并初始化了一个标准的JavaScript对象。然后,我们使用Java IO流读取文件中的JavaScript代码,并使用`rhino.evaluateReader()`方法将其解释为JavaScript脚本。 为了在test.js中调用MainActivity中的test()方法,我们需要将MainActivity对象传递给JavaScript代码中。这可以通过在Rhino上下文中定义Java对象实现,如下所示: ```java Object javaObject = Context.javaToJS(this, scope); ScriptableObject.putProperty(scope, "javaObject", javaObject); ``` 然后,在test.js文件中,我们可以使用以下代码来调用MainActivity中的test()方法: ```javascript javaObject.test(); ``` 完整代码如下: ```java Context rhino = Context.enter(); rhino.setOptimizationLevel(-1); Scriptable scope = rhino.initStandardObjects(); File file = new File(Environment.getExternalStorageDirectory(), "test.js"); Reader reader = new FileReader(file); rhino.evaluateReader(scope, reader, "test", 1, null); Object javaObject = Context.javaToJS(this, scope); ScriptableObject.putProperty(scope, "javaObject", javaObject); // 调用test()方法 String result = (String) ScriptableObject.callMethod(scope.get("javaObject", scope), "test", null, new Object[]{}); ``` 需要注意的是,这里假设test()方法返回一个字符串。如果test()方法返回其他类型的值,则需要调整代码以处理这些值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值