0

我将在底部添加代码的简化版本。

我有一个精灵,它可见且快乐。我有一个文本字段,这是可见且快乐的。如果我出于动画目的将文本字段打印到精灵,那么一切都会变得松散。

精灵有一个阴影,输出会抛出一个警告摆动,如果我是文本字段的父级,精灵的宽度为 8900+ 像素,高度为 7000 像素。我知道我可以在动画期间使用 hack 将文本字段和精灵保持在一起,但我宁愿不这样做。代码:

private var headerField:TextField = new TextField();  //text field for the header text
private var contentBox:Sprite;  //box surrounding text elements

headerFormat.font = boldFont.fontName;
            headerFormat.align = TextFormatAlign.LEFT;
            headerFormat.color = (0xDDDDDD);
            headerFormat.size = headerSize;
            headerFormat.leading = 2;

contentBox = new Sprite();
            contentBox.graphics.beginFill(uint(pageColour));
            contentBox.graphics.drawRect(0, 0, 100, 100);
            contentBox.graphics.endFill();

contentBox.filters = [new DropShadowFilter(4, 90, 0, 0.75, 4, 4, 0.75, 3, false, false, false)];

contentBox.x = 25;
                contentBox.y = 150;
                contentBox.width = 1140;
                contentBox.height = 555;

headerField.x = 50;
                headerField.y = 180;
                headerField.width = 610;

addChild(contentBox);
addChild(headerField);

工作正常,改变:

addChild(headerField);

到:

contentBox.addChild(headerField);

并且文本字段不会显示,输出显示无法渲染阴影,并且一切运行速度都很慢。

我尝试在更改宽度等之前将项目添加到舞台,没有区别。有任何想法吗?

干杯。

4

2 回答 2

0

我在使用 TweenMax 及其 MotionBlur 插件时解决了这个问题。你也用吗?

或者尝试使用一个 EmbeddedFont 看看是否可以。

于 2012-07-02T10:11:07.490 回答
0

请记住,当基于父对象确定 DisplayObject 的 X 和 Y 属性时。因此更改文本的父级意味着它可能不会以您认为的位置结束(例如,它的 X 位置将不再距舞台左侧 50px,而是距 contentHeader 50px,而 contentHeader 本身距舞台左侧 25px阶段)。尝试注释掉阴影线(因为这似乎是导致错误的原因),然后查看文本字段实际最终位置的位置并进行调整。我不确定为什么这会导致错误。

或者,尝试注释掉设置标题 X、Y 和宽度的行,看看是否有任何改变。也许这将帮助您缩小错误范围。

于 2012-07-02T15:11:14.077 回答