2010-05-25 67 views
0

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

此外,为什么当它在displayImage函数中输出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

快速搜索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); 
+0

ouf。这是一个非常愚蠢的问题。我怪热。 ;) – TheDarkIn1978 2010-05-25 23:52:31