首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将图像数据发送到自定义类?

如何将图像数据发送到自定义类?
EN

Stack Overflow用户
提问于 2011-07-29 15:45:22
回答 3查看 169关注 0票数 0

我正在尝试创建一个自定义类,它将在请求时创建一个瓦片(一个小圆角正方形),上面有一个小图像。我可以成功地创建瓦片,如下面的代码所示,但我不知道如何将图片数据传递给该类。

是否可以使用bitmapData或通过库引用它(如果我将图片存储在库中的电影剪辑中?

到目前为止,这是我的类:

代码语言:javascript
复制
package  com{
import flash.display.MovieClip;
import fl.transitions.Tween;
import fl.transitions.easing.Strong;

public class tileCreator extends MovieClip{

    public var tiled:MovieClip;
    public var sourceImage:MovieClip = new MovieClip;

    public function tileCreator() {
        trace("tile creator");
        tiled = new MovieClip;
        tiled.graphics.beginFill(0x666666, 0.3);
        tiled.graphics.drawRoundRect(-55/2, -55/2, 55, 55, 15, 15);
        this.addChild(tiled);
    }
}

}

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-29 15:59:06

是的,使用BitmapData是可能的。

将图像导入到库中,然后右键单击以更改“设置...”。你必须勾选"export for actionscript“,然后在复选框下面的第二个文本字段中输入一个名字--比如说'MyImage‘。(flash会自动添加flash.display.BitmapData类型的基类)。

然后,您可以创建镜像的实例,如下所示:

代码语言:javascript
复制
var myImage:MyImage = new MyImage();

它是一个BitmapData对象,因为您的MyImage类扩展了BitmapData。

然后,您只需将BitmapData作为参数添加到构造函数中(将您的类重命名为Tile,因为它不是创建者,而是您创建的tile本身。并使用大写字母!)。

代码语言:javascript
复制
public class Tile extends MovieClip
{
   public function Tile (img:BitmapData)
   {
      var bmp:Bitmap = new Bitmap(img);
      addChild(bmp);
      tiled = new MovieClip;
      tiled.graphics.beginFill(0x666666, 0.3);
      tiled.graphics.drawRoundRect(-55/2, -55/2, 55, 55, 15, 15);
      addChild(tiled);
      bmp.mask = tiled;
   }
} 
票数 0
EN

Stack Overflow用户

发布于 2011-07-29 15:58:30

你需要按照下面的方式来做:

代码语言:javascript
复制
function createBitmap ( yourMovieClipYouWantToBeAsImage : DisplayObject ) : Bitmap
{
    var bitmapData:BitmapData = new BitmapData ( width, height );
        bitmapData.draw ( yourMovieClipYouWantToBeAsImage );
    var bitmap:Bitmap = new Bitmap ( bitmapData );

    return bitmap; // do what ever you want with it but now as an image
}
票数 0
EN

Stack Overflow用户

发布于 2011-07-29 15:58:52

你可以使用bitmapData创建一个“快照”。然后,您可以将它传递给您想要的任何其他类。代码如下所示。

代码语言:javascript
复制
//This code goes into your TileCreator-class
public function draw():BitmapData
{
    //True and 0 at the end of creating this bitmap ensure transparancy 
    //for the transparant pixels (else these would be opaque)
    var bmp:BitmapData = new BitmapData(width, height, true, 0);
    bmp.draw(this);

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

https://stackoverflow.com/questions/6870053

复制
相关文章

相似问题

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