Actionscript 3 警告:3D DisplayObject将不会渲染。其尺寸(67111316711131)太大,无法绘制
我对黑莓Playbook的ActionScript3.0非常陌生 我正在尝试调整加载了Loader类的图像的大小。但是,当我使用此功能设置其新尺寸时:Actionscript 3 警告:3D DisplayObject将不会渲染。其尺寸(67111316711131)太大,无法绘制,actionscript-3,blackberry-playbook,Actionscript 3,Blackberry Playbook,我对黑莓Playbook的ActionScript3.0非常陌生 我正在尝试调整加载了Loader类的图像的大小。但是,当我使用此功能设置其新尺寸时: private function loaded(event:Event):void { var targetLoader:Loader = Loader(event.target.loader); targetLoader.height = 240; targetLoader.width = 240; } 我得到以下错误
private function loaded(event:Event):void
{
var targetLoader:Loader = Loader(event.target.loader);
targetLoader.height = 240;
targetLoader.width = 240;
}
我得到以下错误:
警告:3D DisplayObject将不会渲染。其尺寸(67111316711131)太大,无法绘制。
我正在使用两个图像:一个有152.292字节,另一个有170.663字节错误消息说3D DisplayObject,可能是你在3D中有某种缩放/透视,这会将你的图像放大到令人惊异的670万像素尺寸吗?:) 这是因为对象的
z
属性不是0(在3D中也是如此),或者它在3D中有一个子对象太大了。当您在flash 3D中调整对象的大小(例如2x)时,结果可能不是2x(想象在平面中),flash在2D中绘制对象,并且要绘制的矩形太大
旋转对象时,放大此结果:
在本例中,差异为31像素,但在较大的图像中,差异将是巨大的,就像您的6711131像素的情况一样,消息表明(正如其他响应者所说)您正在对加载程序或其在显示树中的上升部分应用一些3D变换
然而,意外的巨大规模可能是另一个原因
当显示对象仍然为空时(即在加载程序完成加载之前),尝试将“宽度”或“高度”属性设置为显示对象时,通常会发生这种情况。如果这样做(即当对象仍然为空时,someobject.width=240),则对其应用无限缩放;然后,一旦对象实际填充了某些内容(即加载程序完成加载),您就会得到一个巨大的对象
在您的情况下,似乎是在装载机完成装载时设置维度(因此不应该发生);然而,我记得在Flash运行时遇到了一些错误,对象的宽度/高度属性没有及时更新,导致了这个问题,尽管我不能100%确定这是您的情况
如果是这种情况,解决方法是直接设置scaleX和scaleY属性,而不是宽度和高度属性。如果预先知道加载图像的预期尺寸,则可以编写:
private function loaded(event:Event):void
{
var targetLoader:Loader = Loader(event.target.loader);
targetLoader.scaleY = targetLoader.scaleX = 240/EXPECTED_WIDTH_HERE;
}
否则,可以使用LOADERINFO对象的宽度和高度属性,而不是Loader对象的宽度和高度属性。这些将告诉您加载图像的“标称”大小:
private function loaded(event:Event):void
{
var targetLoader:Loader = Loader(event.target.loader);
targetLoader.scaleY = targetLoader.scaleX = 240/targetloader.contentLoaderInfo.width;
}
尝试
targetLoader.content.height
@www0z0k:我得到了同样的信息。根据播放器版本,Flash将任何图像/位图对象的尺寸限制在相对较低的大小,比如2880到数千(不记得了),但绝对不是670万:)我使用了两个图像:一个有152.292字节,另一个有170.663字节。@dain:相关尺寸是3D转换之前2D对象的尺寸。VansFannel,相关的是以像素为单位的尺寸,而不是以字节为单位的文件尺寸。你正在加载一个非常大的3D对象。您可以查看如何更改此对象。可能不会旋转它,并用其他方式产生相同的效果。因此,我必须使用更小的图像,不是吗?@unkiwii大小的限制不在于渲染结果,而在于3D渲染之前对象的大小。示例中暗示的旋转引起的变形与此无关,不会导致(本身)对象无法绘制