首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在屏幕上绘制BitmapData或绘制BitmapData?

如何在屏幕上绘制BitmapData或绘制BitmapData?
EN

Stack Overflow用户
提问于 2009-07-15 16:13:25
回答 2查看 13.3K关注 0票数 2

我目前正在开发一个flash游戏,我需要知道如何addChild一个BitmapData或绘制一个BitmapData到屏幕上。如果我不能,我怎么能给DisplayObject我的BitmapData呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-15 16:25:03

不能将BitmapData对象直接添加到屏幕,因为它们不是DisplayObject的后代。如果您想要显示BitmapData对象的内容,则需要使用Bitmap,它的bitmapData属性。如果你使用的是Flex,你需要确保将位图放入UIComponent的一个实例或者它的一个子类中。否则,如果你只是在闪存中使用AS3,这将会实现:

代码语言:javascript
运行
复制
    package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.geom.Point;

    public class BitmapDataExample extends Sprite
    {
        public function BitmapDataExample()
        {
            super();

            var canvasSize:uint = 100;
            var size:uint = 5;
            var bd:BitmapData = new BitmapData (canvasSize, canvasSize, false, 0x000000);

            var bmp:Bitmap = new Bitmap (bd);
            addChild(bmp);

            // everything from this point on is just drawing junk into the BitmapData object
            var p:Point = new Point (0, 0);
            for (var y = 0; y < canvasSize; y++)
            {
                p.y = y;

                for (var x = 0; x < canvasSize; x++)
                {
                    p.x = x;

                    if (p.x % size == p.y % size)
                        bd.setPixel(p.x, p.y, 0x00FF00);
                }
            }
        }

    }
}
票数 7
EN

Stack Overflow用户

发布于 2009-07-15 16:23:45

假设我已经正确理解了这个问题,这里有一个组合在一起的AIR应用程序的例子来说明一种方法:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()">

    <mx:Script>
        <![CDATA[

            import mx.core.UIComponent;

            private function onCreationComplete():void
            {
                // Some sample bitmap data
                var bmpd:BitmapData = new BitmapData(50, 50, false, 0xFF0000);

                // Create a new bitmap, created from the data
                var bmp:Bitmap = new Bitmap(bmpd);

                // Wrap the bitmap in UIComponent
                var uic:UIComponent = new UIComponent();
                uic.addChild(bmp);

                // Add your UIComponent to the display list
                addChild(uic);
            }

        ]]>
    </mx:Script>

</mx:WindowedApplication>

实际上,您需要知道的是,您的BitmapData首先需要包装在Bitmap对象中,并且生成的Bitmap对象是一个DisplayObject,因此,在将其添加到显示列表之前,需要将其包装在UIComponent实例中。

这只是一种方法,但同样,这在很大程度上取决于你试图具体做什么,所以如果这不太适用于你的情况,请随时回帖,我会相应地进行调整。希望它能帮上忙!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1132385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档