as3动态重新定位& textField的规模,可以做到吗?

时间:2014-01-29 19:41:02

标签: actionscript-3 dynamic position scale textfield

是否可以动态设置舞台上的textField并允许stageHeight&宽度随着调整大小事件而变化。

舞台说(500 x 250),并不重要作为示例和任何文本,(xml,内联,等等)。我把这个例子从republicofCode作为一个例子,因为我花了一整天时间尝试不同的理论并且说服自己这不是人道的可能,尽管外表是最简单的事情。请帮助至少解决这个谜团。 。

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

var myText:TextField = new TextField();
myText.text = "The quick brown fox jumps over the lazy dog";
myText.addEventListener(Event.ADDED_TO_STAGE, onAddToStage);

addChild(myText);

myText.wordWrap = true;
myText.width = 150;
myText.height = 40;
myText.x = 100;
myText.y = 100;

function onAddToStage(event:Event):void {
    stage.addEventListener(Event.RESIZE, adjustTextField);
    trace("text definitely onStage");
}  

function adjustTextField(event:Event):void {
    trace ("adjustTextField being fired!");
    myText.x = stage.stageWidth / 2; // ANYTHING THAT WORKS
    // myText.y = stage.stageWidth / 2; //ANYTHING THAT WORKS
    trace ("adjustTextField fired and still nothing happening. . . !");

    trace ("height" +stage.stageHeight);
    trace ("width" +stage.stageWidth);
}

是什么给出了?

如果你复制&粘贴代码你应该得到一个textField,它自己定位在x.100& y.100,理论上,通过缩放flash播放器,它应该将textField的左上角移动到场景的中心。但不是。 ?! WTD!

我不是在对文本进行重新缩放之后,只是改变它的位置和textBox的宽度,以容纳更大或更小的文本区域,这些文本区域会被放大。

我已经用Google搜索了一天并没有看到这个工作的一个例子,所以也许它无法完成但是肯定会有一些微不足道的事情可能,在闪光灯可以做的其他事情之后,这肯定超出了复杂程度!

  • 修订 - 发布崩溃后的解决方案,将恢复以前对项目版本的尝试,并在我将滚动条固定到位并修正比率对齐后上传代码。

1 个答案:

答案 0 :(得分:0)

您应该阅读scaleMode

我添加了

stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.align = StageAlign.TOP_LEFT;

使您的示例代码能够正常运行。

(我还必须移动ADDED_TO_STAGE监听器,在addChild调用之前添加它,但如果你已经看到了跟踪,则不需要改变它)