问题标签 [bitmapdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flash - Internet Explorer 闪存性能
我将此发布到 Adobe 论坛,但我不希望那里有一个好的答案。我正在向在 Flash 中完成游戏并遇到同样问题的人寻求帮助。
重现我的问题的步骤:
在 Flash 中创建简单的点 DisplayObject
/li>一帧多次绘制点到位图
/li>- 结合浏览器测试FrameRate,Win32上的flash插件版本
预计:
大多数情况下帧率接近
观察到的:
我看到在 IE7 下使用 Flash10b.ocx(10.0.22) 的帧率下降了 25%,使用 Flash10c.ocx(10.0.32) 的帧率下降了 50%。FireFox、Safari 和 Mac OSX 下的插件不会表现出同样的减速。
请帮忙:
我想就我在 Internet Explorer 中看到的性能问题获得帮助/确认。Adobe 和 Flash 社区在 Internet 上很棒,但我很惊讶没有看到这方面的信息,只有一些关于 10.0.32 与 10.0.22 上的电影播放的报告。
我的猜测是,在 IE flash 中,插件正在将绘图调用传递给 Win32,这很慢。
我的解决方案是:
不要每次都使用 draw 在位图上绘制,而是将绘制调用缓存到位图并使用CopyPixels
. 当我这样做时,跨浏览器的性能是相同的,在 10% 以内。
我正在使用的循环:
关于其他可能“已知”问题的注释,我想了解更多:
- 据报道,在 IE 下,我的应用程序使用的内存要小得多(在 flashplayer 中通常为 33MB,在 IE 下为 16MB)。
- 在 IE 下,内存页面错误超过 10k/秒,而在 flash 播放器中则没有。
- 在 IE 下,stage.invalidate 似乎会导致性能问题。
- 在 IE 下,在位图上放置模糊滤镜比在 Flash 播放器中具有更大的性能影响。
flash - Flash AS3 BitmapData.draw() 影响文本格式
我需要显示抗锯齿系统字体(因为 swf 文件大小必须很小,因此我不能嵌入字体)。所以我写了这个脚本来手动消除文本的锯齿
代码:
这工作得很好,但有一件讨厌的事情。有时绘图调用的缩放会影响文本格式。例如,一行的最后一个单词将改为下一行的第一个单词。这绝对不能发生!有谁知道它为什么会发生以及我如何避免它?我希望文本完全按照文本框中的显示方式呈现到 bitmapData
谢谢!
flash - 转换位图数据
我正在尝试将几个 jpeg 图像动态 XML 加载到 fla 中的 bitmapdata 对象中。我可以在这个 .swf 文件的舞台上看到它们。
但是,我将它加载到另一个 .swf 中,这是我在单击其中一个菜单选项时要调用的主要文件。
我收到此错误:错误 #1034:类型强制失败:无法将 com::Fashion@1daf4ca1 转换为 flash.display.MovieClip。
有谁知道如何转换?
flash - ActionScript 3 (AS3) 中蒙版图像的 BitmapData
我正在尝试拍摄图像的蒙版区域的快照......所以,我加载我的图像然后执行以下功能:
所以,在我管理加载的图像之后,我保存它。但是保存功能只输出一个 80x80px 的白色方块。这告诉我,我正在对一个空白阶段进行快照。
MovieClip 构造如下:
我有一部电影,在那部电影里面我有一个缩略图编辑器名称 ThumbEdit。
ThumbEdit 在其舞台上有一个名为“holder1”的影片剪辑。在 ThumbEdit 的文档类中,我创建了一个精灵“_bithold”并将其放置在舞台上的 holder1.x 和 holder1.y 上。当图像加载时,我将图像添加到 _bithold 中,然后用形状屏蔽 _bithold。所以,我想获取 _bithold 的蒙面区域的快照,但我不确定我应该如何去做……有什么建议吗?
actionscript-3 - 将对象添加到 bitMapData
就目前而言。我有 3 个对象。一个充当我画布的位图。和 2 个位图数据。一个是我的缓冲区,另一个是我的瓷砖。我正在为游戏创建平铺效果。我想拿我的 tile:BitMapData,把它变成一个自定义对象。原因是我希望每个图块都是交互式的。所以我可以点击每一个。是否可以将代表图块的 bitMapData 转换为具有属性和方法的自定义对象。有点像电影剪辑。并将其绘制到我的缓冲区中??我可以创建一个扩展 bitMapData 的新类吗?还是我必须摆脱缓冲区并将平铺对象直接绘制到位图中?
换句话说,将 Sprite 或 tile 放入 BitMapData 对象甚至是 Bitmap 的最佳方式是什么。
flash - 变换 BitmapData 对象的单通道
我有一个带有 alpha 通道的 BitmapData 对象。我想知道在 ActionScript3 (FlashPlayer10) 中偏移 alpha 通道的最快方法。通过偏移,我的意思是在一个方向上移动该通道的所有像素(环绕图像边界),同时保持颜色通道不变。
有没有一种好方法可以将这种变换仅应用于一个通道?
actionscript-3 - Actionscript BlurFilter 环绕
我正在使用标准的 ActionScript 模糊滤镜来模糊图像。该图像稍后将用作圆柱体上的纹理贴图,即它的左右边缘将在 3D 中相遇。这看起来很糟糕,因为模糊滤镜在图像边缘有不连续性。我想将其设置为环绕图像,这样它就不会截断过滤器内核,而是执行模运算以从另一端获取像素。这有可能吗?
如果不是 - 在 ActionScript 中自己编写此类函数的最佳方式是什么?我想使用 getPixel32 和 setPixel32 对于较大的图像会非常慢?
actionscript-3 - 更改精灵位图
截至目前,我正在尝试为我正在创建的游戏创建平铺效果。我正在使用图块表,并且正在将图块加载到精灵中,就像这样...
var tileImage 是位图数据。30 是要移动的像素数。那么 tWidth 和 tHeight 是矩形的大小。这是 30x30
这就是我在瓷砖上扮演角色时更改位图的方法
我清除精灵画布。然后我重写到 tileImage 上的另一个位置。
我的问题是......
它完全删除了旧图块,但新图块的位置比旧位图出现的位置更靠右。
我的平铺表只有 90 像素宽 x 30 像素高。最重要的是,我的新瓷砖似乎画在旧瓷砖的后面。有没有更好的方法来完善这一点。
再次,我想要的只是位图改变颜色
actionscript-3 - 无效位图数据错误 #2015
我收到以下错误:
当我复制像素时往往会发生这种情况。我不知道为什么。
tileImage 是有效的,我在下面的代码中使用了该变量并且它可以工作。但上面没有。不知道为什么。有人有任何线索吗?
actionscript-3 - #2015:无效的位图数据
在我的课堂上,如果我bitmapData
这样创建:
我收到以下错误:
但是,如果我在方法中声明变量:
它工作正常。为什么!?!?!这让我疯狂。
多谢你们!