Flash AS2:检查MovieClip是否渲染了任何图形

Flash AS2:检查MovieClip是否渲染了任何图形,flash,rendering,actionscript-2,Flash,Rendering,Actionscript 2,我正在使用MediaMind和ActionScript2(出版商不允许使用AS3)制作SmartVersioning广告 跳过它是如何实现的-基本上我拥有的是主时间轴上包含可交换映像(通过智能版本控制服务)的MovieClips集合。如果对象位于主时间线上,则只能将其定义为智能版本控制对象 我使用BitmapData将主时间线上的资源用作整个动画中图形的源 应尽可能简单: import flash.display.BitmapData; var bmd:BitmapData = new Bit

我正在使用MediaMind和ActionScript2(出版商不允许使用AS3)制作SmartVersioning广告

跳过它是如何实现的-基本上我拥有的是主时间轴上包含可交换映像(通过智能版本控制服务)的MovieClips集合。如果对象位于主时间线上,则只能将其定义为智能版本控制对象

我使用BitmapData将主时间线上的资源用作整个动画中图形的源

应尽可能简单:

import flash.display.BitmapData;

var bmd:BitmapData = new BitmapData(143, 230, true, 0);

bmd.draw(_root.person1);
attachBitmap(bmd, getNextHighestDepth());
但是,在加载智能版本控制资源(即整个动画中所需的图像)时会出现延迟,因此如果资源没有及时加载,这可能会导致上述代码失败

然后,我将上述代码修改为:

import flash.display.BitmapData;

var bmd:BitmapData = new BitmapData(143, 230, true, 0);

onEnterFrame = function():Void
{
    bmd.draw(_root.person1);
}

attachBitmap(bmd, getNextHighestDepth());
可以工作,但有明显的问题,而且编码非常糟糕。那么,有没有办法做一个检查,看看是否有任何图形被画进了MovieClip中,这个代码在其中运行?比如:

onEnterFrame = function():Void
{
    if(<hasNoGraphicsYet>)
        bmd.draw(_root.person1);
    else
        delete(onEnterFrame);
}
onEnterFrame=function():Void
{
if()
骨密度图(_root.person1);
其他的
删除(单帧);
}

您可以检查
电影剪辑的
宽度
高度
,如果上面没有画任何东西,它们应该是
0

您是对的,使用这些enterFrame检查是错误的编码。为什么不使用SmartVersioning组件中的完整事件来确定何时加载资产XML

mediamind的C&p:

// wait until all of the Smart Items have been loaded
stop();
import eyeblaster.events.EBSmartVersioningEvent;
// Register to the XML_LOADED event in order to update the Smart Items
SVComp.addEventListener(EBSmartVersioningEvent.XML_LOADED,onXMLloaded);
// Register to the COMPLETE event in order to continue movie playback after all items are updated
SVComp.addEventListener(EBSmartVersioningEvent.COMPLETE,onComplete);

function onXMLloaded(event)
{
    // update all Smart Items
    SVComp.updateAllItems();
}
function onComplete(event)
{
    // check that the Complete event is for all items
    if (event.item==null)
    {
        play();
    }
}

检查
MovieClip
高度和
宽度有什么关系。如果什么都没有画出来,那不是应该是
0
吗?啊,太完美了。。如果你想把它作为一个答案,我会接受的。很好!但是,我被限制使用AS2,所以在这种情况下,它对我不起作用。为将来的广告存档:)这是AS2,来自AS2 Eyeblaster API参考。如果您有帐户,那么您应该能够访问此链接:我认为此答案更适合。@Marty Wallace您是对的,答案更适合您的问题,但不适合问题标题
AS2:检查电影剪辑是否渲染了任何图形
;-)也许你应该更改标题,因为搜索到类似主题的答案不会被接受。我去做了,意识到我也必须更改所有正文内容,我觉得我太懒了。。