ActionScript BitmapData内置于位图?

时间:2010-05-25 22:07:32

标签: actionscript-3 bitmap bitmapdata

我使用了Loader和URLRequest从互联网上下载.png并将其添加到我的显示列表中。因为它已经是位图,它是否已经内置了位图数据?或者我是否必须自己创建位图数据?

另外,为什么在displayMmage函数中输出true时,同一个trace语句在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'
     }

1 个答案:

答案 0 :(得分:1)

快速搜索AS3文档告诉我Bitmap has a bitmapData property

你在每条痕迹中得到不同的结果,因为你正在追踪不同的东西。尝试只追踪属性而不是“是位图”,以查看实际存储的内容。

您追踪事件的第一个跟踪,第二个跟踪MouseEvent。您的displayImage函数是“Loader Complete handler”,因此target将是LoaderInfo object。在LoaderInfo对象中,target引用“与此LoaderInfo对象关联的已加载DisplayObject”。但是在MouseEvent中,目标会有所不同。您需要参考docs for each event以了解目标是什么。

另外,我认为您需要将鼠标移动事件监听器添加到舞台上,否则它将无法正常工作。

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);