StarlingManual:动态纹理

来自Starling中文站
跳转到: 导航, 搜索

Starling允许大家动态的直接创建自定义纹理。但是我们没有为这个特性重新发明轮子。Starling只是简单的利用了flash强大的矢量能力。 对于矢量内容,Flash提供Graphics类。大家可以通过访问这个类来绘制任何sprite或shape。

var shape:Shape = new Shape();
shape.graphics.beginFill(Color.MAROON);
shape.graphics.drawCircle(50, 50, 30);
shape.graphics.endFill();
shape.filters = [ new DropShadowFilter() ];

我们只是创建了一个简单的带有投影的红色圆形。但是这个对象不能显示到Starling的显示列表——毕竟,他是flash的显示对象。 但是我们可以将这个形状绘制到一个位图然后从位图创建一个纹理!

var bmpData:BitmapData = new BitmapData(100, 100, true, 0x0);
bmpData.draw(shape);
 
var texture:Texture = Texture.fromBitmapData(bmpData);
var image:Image = new Image(texture);
addChild(image);

这是一个非常强大的技术,因为所有的flash显示对象都可以绘制到位图!只要记住每帧创建一个位图会很慢,所以这项技术并不适合来创建动态的动画。


翻译:杨旺(peter4431)

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱