Apache flex AS3:分组精灵

Apache flex AS3:分组精灵,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我有一把精灵,我正试图通过addChild()将它们组合在一起。 下面是一些伪代码,演示了我想要实现的功能: import nav.text.TextSprite; spr1:Sprite = new Sprite(); spr1.graphics.clear(); spr1.graphics.beginFill(0x000000); spr1.graphics.drawRect(0,0,100,100); txt1:TextSprite = new TextSprite; txt1.te

我有一把精灵,我正试图通过addChild()将它们组合在一起。 下面是一些伪代码,演示了我想要实现的功能:

import nav.text.TextSprite; 

spr1:Sprite = new Sprite();
spr1.graphics.clear();
spr1.graphics.beginFill(0x000000);
spr1.graphics.drawRect(0,0,100,100);

txt1:TextSprite = new TextSprite;
txt1.text = "hello";

spr1.addChild(txt1);

//this is what isn't working:  the sprite is hidden but not the text
spr1.alpha = 0.0;
由于某些原因,我似乎无法让TextSprite正确绘制。。。它只是一个添加了文本字段的精灵。我想那里的一切都正常,但我可能出了点问题,因为我需要确保所有TextSprites子项都正确分组

我应该提到的是,它的位置是正确的;但是alpha属性不会以我期望的方式响应。也就是说,文本字段附加到的精灵将允许设置其alpha,但文本仍然可见



有什么想法吗?

很可能您只需要在文本字段中嵌入字体。尝试更改spr1的x,y,并查看txt1是否随spr1一起移动。如果它真的是一个孩子,那么它会对新的位置做出反应。

很可能你只需要在文本字段中嵌入字体。尝试更改spr1的x,y,并查看txt1是否随spr1一起移动。如果它确实是一个孩子,那么它将响应新的位置。

您需要使用textfield.embedFonts=true嵌入字体。如果执行此操作时文本消失,如何嵌入字体(使用Flex embed meta标记或使用Flash IDE?),请检查是否未更改字体重量(仅嵌入正常重量字体时将文本设置为粗体),以及是否使用文本格式,确保在设置textfield.text属性后应用文本格式。您可以使用textfield.defaultTextFormat解决此问题。

您需要使用textfield.embedFonts=true嵌入字体。如果执行此操作时文本消失,如何嵌入字体(使用Flex embed meta标记或使用Flash IDE?),请检查是否未更改字体重量(仅嵌入正常重量字体时将文本设置为粗体),以及是否使用文本格式,确保在设置textfield.text属性后应用文本格式。你可以通过使用textfield.defaultTextFormat来解决这个问题。

我似乎记得一位同事在嵌入字体之前无法旋转文本,这也就是alpha级别应该在同一条船上的原因。带有非嵌入字体的动态textfield在处理容器时会做一些奇怪的事情。例如,在禁用嵌入的情况下,尝试在文本字段上放置掩码,您将永远看不到文本;在我通过TextFormat()设置字体道具和格式之后,现在我看不到文本。我做错了什么?将其添加到显示列表后是否需要执行此操作?@sberry2A:它确实会响应位置更改。。。我已经测试过了,应该在我的原始帖子中提到这一点。。。现在正在更新。我似乎记得一位同事在嵌入字体之前无法旋转文本,这是alpha level将在同一条船上的原因。带有非嵌入字体的动态文本字段在处理容器时会做一些奇怪的事情。例如,在禁用嵌入的情况下,尝试在文本字段上放置掩码,您将永远看不到文本;在我通过TextFormat()设置字体道具和格式之后,现在我看不到文本。我做错了什么?将其添加到显示列表后是否需要执行此操作?@sberry2A:它确实会响应位置更改。。。我已经测试过了,应该在我的原始帖子中提到这一点。。。现在更新。谢谢。我不知道你必须单独嵌入。您是否有使用FlashAPI进行嵌入的参考资料?我觉得Flex嵌入元标记对我们来说可能更直接,但我对学习这两种方法都感兴趣。我想我更喜欢使用embed meta标签,而不是跳出Flex应用程序去胡闹。有人能告诉我这是否真的是降低文件大小的唯一方法吗?我也看到了这一点:这可能会有所帮助……您可以使用标准的嵌入标记,如:[embed(source=“../assets/copy0855.ttf”,fontwright=“normal”,fontfalism=“Copy”,mimeType=“application/x-font-truetype”)]private static const Copy:String;然后:_textFormat.font=“复制”;这有时会导致Flex显示奇怪的字体解析错误。如果您得到这些,请尝试将其添加到编译器参数:-managers flash.fonts.afefontmanager anks。我不知道你必须单独嵌入。您是否有使用FlashAPI进行嵌入的参考资料?我觉得Flex嵌入元标记对我们来说可能更直接,但我对学习这两种方法都感兴趣。我想我更喜欢使用embed meta标签,而不是跳出Flex应用程序去胡闹。有人能告诉我这是否真的是降低文件大小的唯一方法吗?我也看到了这一点:这可能会有所帮助……您可以使用标准的嵌入标记,如:[embed(source=“../assets/copy0855.ttf”,fontwright=“normal”,fontfalism=“Copy”,mimeType=“application/x-font-truetype”)]private static const Copy:String;然后:_textFormat.font=“复制”;这有时会导致Flex显示奇怪的字体解析错误。如果您得到这些,请尝试将其添加到编译器参数:-managers flash.fonts.AFEFontManager