- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚重新实现了我正在开发的音乐应用程序的一个组件,以使用 KineticJS 而不是我的原型(prototype) GUI,所有这些都使用 DOM 元素和一些 JQuery 动画完成。起初,我很高兴看到 Chrome 中的帧率有 10-15% 的适度提高,但后来在 iPad 2 上进行了测试,我估计与 DOM 版本大约 30fps 相比,我估计大约 6fps。
我一定是做错了什么。我希望。
组件为 1000x300,有 2 层。一个是静态背景,另一个有大约 150 种形状,大部分大小约为 20-30 像素,少数与 Canvas 长度相同。动画使用 Kinetic.Tween 同时对不透明度和宽度进行动画处理。大多数形状只是圆形,尺寸很小。没有缓存任何内容,但这看起来太少太简单了,我没有预料到会出现这种迟缓(我估计我看到的是 6 fps 左右)。我正在为单个笔记创建新的 Tween 实例,并且可以改为使用池,因为总对象数是恒定的,但如果仅此一项就导致速度如此缓慢,我感到很惊讶。凭直觉,我怀疑它插入像素是某种问题?
该应用程序将 WebAudio 和 JQuery UI 用于简单的小部件(如按钮),但至少有 30 fps 的 DOM 实现具有相同的音频,相同的一切。
对于 Tweens,渲染循环的默认行为是什么?我在文档中看不到指定所需帧率的方法。 Kinect.Animation 看起来它提供了更精细的粒度控制,但在我的情况下,这需要太多的状态,因为动画都是脉冲事件,会在 0.5-1.2 秒内消失。出于某种原因,不透明度的动画制作成本非常高吗?我的静态背景层是否因未缓存为图像而导致任何问题?
抱歉,没有可显示的代码。我可以创建一个 jsfiddle,但我希望在上面的描述中有一些明显的东西我应该做不同的事情。
哦,我不是在查找动画对象;它们都从初始时间开始就保存在数组中。同样,我认为这不是问题所在。
最佳答案
由于没有人敢于对我的重要问题发表评论,我将发布一个答案。我不确定,但我相信我的代码的第一个版本没有正确设置 HTML 中的视口(viewport)缩放,导致非 GPU 缩放的 Canvas 和糟糕的帧率。
如果其他人遇到类似的问题,可能是您忘记将其添加到 HTML 的 HEAD 中:
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
虽然还有其他设置比例的选项,但我更喜欢这个,然后在我的应用程序代码中进行任何自定义屏幕宽度缩放。
附言。我现在使用 KinectJS 在我老化的 iPad 2 上拥有一个健康的 40-50fps 和许多动画透明淡入淡出等等。
关于ios - KineticJS 在 iPad 2 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22214210/
似乎缺乏关于 KineticJS 中 Color 是什么的文档(如果我错了,请告诉我) 到目前为止,我通过反复试验发现,我实际上可以将以下内容传递给 setFill 类中的 Shape 之类的函数:
我发现 KineticJS 过滤器文档非常令人沮丧,无法在网上找到示例,尤其是考虑到亮度。 kinetic.filters 文档 link提及 Kinetic.Filters.Brighten(ima
我有一个用 Box2Dweb 模拟的 body 和一个附着在 body 上的图像。我想采用 body 变换矩阵并将变换应用于图像(用变换绘制图像),使其在屏幕上的位置和方向(相对)与 body 的位置
我需要用 KineticJS 绘制动画 gif,但是,当我按照 image tutorial 时,我失败了.有什么方法可以画gif动画吗? 最佳答案 使用 KineticJS Sprite。 动画 G
有没有办法在 KineticJS 的 Text 对象中设置字体粗细? 这里是示例代码: var myText = new Kinetic.Text( { x: 350, y:
我正在使用 KineticJS 开发一个简单的绘画程序。我要实现的是用鼠标移动绘制一个矩形、直线或圆形,绘制的形状可以通过鼠标拖动或调整大小。我的问题是,我必须使用 mousedown 和 mouse
我有一个 SVG Sprite ,其架构如下: Image Image Image Image Image Image Image Image Image 其中 Image 是图像,所有九个图像都
我正在尝试 KineticJS 并查看此示例: var stage = new Kinetic.Stage({ container: 'container', width: 500, he
突然,一个简单的动画在 Chrome(大约 30fps)和 firefox(大约 7fps)中具有不同的帧速率。这是正确的行为吗?我可以在动画函数中调整 framRate 吗? 最佳答案 试试这个 /
我想实现一个函数,它将一个组和一个矩形作为参数,并检查该矩形是否属于该组。如果它属于组,我想从组和图层中完全删除该矩形。我尝试了 group.remove() 和 group.getChildren(
在 KinectJS ,如何创建阴影(即边缘模糊的半透明形状)而不绘制“转换”它的形状? 一开始我以为可以让形状投下阴影,但将形状本身的不透明度设置为零。像这样: var rect = new Kin
我正在向舞台添加一个图像作为背景图像和一个矩形。如何确保矩形在舞台上居中并且背景会根据浏览器调整大小? var stage = new Kinetic.Stage({ container: 'c
我正在尝试更改鼠标悬停在图像上的鼠标指针,这是我的脚本: var sc = new Kinetic.Layer(); var sCirc
我正在使用 KineticJS 来允许用户操作他们的图像——裁剪、旋转、缩放、翻转等。 当我对图像应用任何变换时,效果很好。但是当我应用第二个变换时,它作用于原始的、未变换的图像,而不是我的新图像。
我想使用使用kineticjs的钢笔工具(如photoshop),我不知道如何实现这一目标。 可不可以?如果可能的话请帮助我找出解决方案。 我正在使用kinetic-v5.0.1.min.js和kin
我想知道 Kinetic 中是否有某种方法可以将图像与较低层上的另一个图像合并,从而根据“裁剪”图像的形状创建一种裁剪效果。 因此图像必须具有透明背景,这对我来说是困难的主要来源。否则我只会使用关闭拖
我一直在尝试在 KineticJs 阶段的“mousemove”上返回鼠标位置。我的想法是在舞台对象上添加 jQuery 事件处理程序... 我遇到了一个问题,但是有一个错误...... 未捕获类型错
我想提高 Canvas 对象的移动拖放性能。我有一个包含不同形状(图像、星星、记录...)的组。我想使用缓存来提高拖放或旋转整个组时的性能。 这是我创建的 JSFiddle:http://jsfidd
我试图模仿这个 other's Stackoverflow canvas clipping function在 KineticJS 中具有可拖动图像的附加功能,但我无法完成它。 fiddle :htt
使用 KineticJS 5.1.0 我有一个带有描边的 KineticJS 图像。我想对此图像应用滤镜。缓存并应用过滤器后,笔划消失了。 Here is a JSFiddle和我的演示代码: var
我是一名优秀的程序员,十分优秀!