Actionscript 3 as3-将文本直接渲染到Sprite.graphics?

Actionscript 3 as3-将文本直接渲染到Sprite.graphics?,actionscript-3,graphics,text,textfield,Actionscript 3,Graphics,Text,Textfield,因为我是一个可怕的坏人,喜欢无缘无故地改变事情, 我希望能够像mySprite.graphics.drawText(…)这样做 据我所知,当前获取文本的唯一方法是创建一个TextField并将其添加为mySprite的子项。在我的特殊情况下,我宁愿不那样做 任何建议,谢谢 ooo如果您想用Sprite方法来封装它,我只需扩展Sprite类,将函数drawText添加到其中。在该方法中添加TextField等,但听起来并不是您想要的 在这种情况下,请看这里 他们创建了一组代码,可以在没有字体的情

因为我是一个可怕的坏人,喜欢无缘无故地改变事情, 我希望能够像mySprite.graphics.drawText(…)这样做

据我所知,当前获取文本的唯一方法是创建一个TextField并将其添加为mySprite的子项。在我的特殊情况下,我宁愿不那样做

任何建议,谢谢


ooo

如果您想用Sprite方法来封装它,我只需扩展Sprite类,将函数drawText添加到其中。在该方法中添加TextField等,但听起来并不是您想要的

在这种情况下,请看这里


他们创建了一组代码,可以在没有字体的情况下呈现字体。有一些缺点,比如文件大小,但这是可能的。

错误bzzzt创建一个新的BitmapData对象,创建一个位图,将BitmapData添加到其中,然后将该位图作为子对象添加到sprite中。例如:

var myTextImage:BitmapData = new BitmapData(textField.width, textField.height, true, 0x000000ff);

myTextImage.draw(textField);

mySprite.addChild(new Bitmap(myTextImage));

stage.addChild(mySprite);

我刚刚编写了代码,所以您必须对其进行调整,但原则应该非常清楚,以便将其调整到您的项目中。

创建一个新的BitmapData对象:
BitmapData=new BitmapData(txt.width,txt.height,true,0x000000ff)

在上面绘制文本字段:
bitmapdata.Draw(txt)

然后使用图形类,它的工作

sprite.graphics.beginBitmapFill(bitmapdata);
sprite.graphics.drawRect(0,0,txt.width,txt.height);
sprite.graphics.endFill();

你为什么要用字体来画角色?我想要一个没有孩子的精灵。我会按照阿森松斯系统给你的答案去做,因为那会给你一个“扁平”的精灵,没有孩子的问题。但接受了错误的答案(死链接)。所以,通过这种方式创建textField对象,将文本写入其中,但不要将其添加到SPRITE中。只需绘制它,然后就可以清除并删除文本字段。您要添加到精灵中的是一个位图,其中包含绘制的文本。谢谢。这是一种有趣的方法,它可能比添加文本字段本身更有效。我本应该更清楚一点——我的希望不是增加任何种类的孩子。我想我可以将文本字段绘制成位图数据,然后通过beginBitmapFill将其输入到我的精灵图形中。也许我误解了这个问题,但我读了它,因为他不想要文本字段?他说他不想将文本字段添加到显示列表中。这是将文本字段转换为位图对象。这样做之后,他使用的临时文本字段超出了范围,最终被垃圾收集。回答得好。但是你也可以做
mySprite.graphics.beginBitmapFill(myTextImage);//drawRect、endFill等
。这样你就有了一个没有孩子的简单精灵,文本被画成了图形。很抱歉投了反对票,但这个答案确实把OP引向了错误的方向。这里的另一个答案是直接而准确的方法。我想在这里也指出,这是一个完美的例子,说明了为什么当你想要指向外部解决方案时,你也应该将该解决方案粘贴到你的答案中。那个链接现在死了。所以你建议复制内容?如果链接内容被更新,我应该在这里更新我的答案吗?如果我发布一个链接,就内容而言,它将始终是最新的-在这种情况下,为什么要在任何地方发布链接?谷歌应该在搜索结果中内联列出内容,而不是链接,这样会更好。当然,网站可能会崩溃,但也可能会。我确实理解这个链接被删除了(这里更新了链接:),这是几年前的事了,但我记得这个解决方案对我来说很有效。不幸的是,我没有时间回去确保我接受的每一个答案都没有死掉的链接。任何人都可以有可以复制和粘贴的完整代码。所以我能理解你的意思。谢谢