我将在底部添加简化版本的代码。
我有一个精灵,它是可见的和快乐的。我有一个文本域,这是可见和快乐的。如果我出于动画的目的将文本字段打印到精灵中,那么一切都会破裂。
精灵有一个阴影,输出会抛出警告,精灵的宽度为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);
文本字段不会显示,输出显示阴影无法渲染,一切都运行得很慢。
我尝试在更改宽度等之前将项目添加到舞台上,没有区别。有什么想法吗?
干杯。
答案 0 :(得分:0)
使用TweenMax及其MotionBlur插件时,我解决了这个问题。你也用它吗?
或尝试使用embeddedFont,看看是否正常。
答案 1 :(得分:0)
请记住,基于父级确定DisplayObject的X和Y属性时。因此,更改文本的父级意味着它可能不会在您认为的位置结束(例如,它的X位置将不再是舞台左侧的50px,而是来自contentHeader的50px,它本身距离左侧25px阶段)。尝试注释掉阴影线(因为这似乎是导致错误的那一行),然后看到文本字段实际上在位置明智的位置并调整它。我不知道为什么会导致错误。
或者,尝试注释掉设置标题的X,Y和宽度的行,看看是否有任何改变。也许这会帮助你缩小这个bug。