Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Actionscript 3 警告:3D DisplayObject将不会渲染。其尺寸(67111316711131)太大,无法绘制_Actionscript 3_Blackberry Playbook - Fatal编程技术网

Actionscript 3 警告:3D DisplayObject将不会渲染。其尺寸(67111316711131)太大,无法绘制

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; } 我得到以下错误

我对黑莓Playbook的ActionScript3.0非常陌生

我正在尝试调整加载了Loader类的图像的大小。但是,当我使用此功能设置其新尺寸时:

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渲染之前对象的大小。示例中暗示的旋转引起的变形与此无关,不会导致(本身)对象无法绘制