0

我使用 Loader 和 URLRequest 从 Internet 下载 .png 并将其添加到我的显示列表中。既然它已经是位图,它是否已经内置了位图数据?还是我必须自己创建位图数据?

另外,为什么相同的跟踪语句在 displayImage 函数中输出 true 时在 mouseMoveHandler 中返回 false?

    var imageLoader:Loader = new Loader();
    imageLoader.load(new URLRequest("http://somewebsite.com/image.png"));
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, displayImage);

    function displayImage(evt:Event):void
     {
     addChild(evt.target.content);
     addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

     trace(evt.target.content is Bitmap);  //outputs 'true'
     }

   function mouseMoveHandler(evt:MouseEvent):void
     {
     trace(evt.target.content is Bitmap);  //outputs 'false'
     }
4

1 回答 1

1

快速搜索 AS3 文档告诉我Bitmap 有一个 bitmapData 属性

您在每个跟踪中都会得到不同的结果,因为您正在跟踪不同的事物。尝试仅跟踪属性而不是“是位图”,以查看实际存储在那里的内容。

您的第一个跟踪是跟踪事件,第二个跟踪是 MouseEvent。您的 displayImage 函数是一个“Loader Complete 处理程序”,因此目标将是一个LoaderInfo 对象。在 LoaderInfo 对象中,target 指的是“与此 LoaderInfo 对象关联的已加载 DisplayObject”。但是在 MouseEvent 中,目标会有所不同。您需要参考每个事件的文档以了解目标是什么。

另外,我认为您需要将鼠标移动事件侦听器添加到舞台,否则它将无法工作,例如

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
于 2010-05-25T23:14:50.817 回答