Q
显示文本中心屏幕
0
A
回答
3
我会创建一个具有内它为中心的文本框类。然后在需要显示消息并将其添加到舞台上时创建一个新实例。这是非常简单的例子:
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Message extends Sprite {
private var tf:TextField;
private var s:Sprite;
public function Message(msg:String) {
s = new Sprite();
s.graphics.beginFill(0,0);
s.graphics.drawRect(0,0,800,600);
s.graphics.endFill();
addChild(s);
tf = new TextField();
tf.autoSize = TextFieldAutoSize.CENTER;
tf.width = 400;
tf.text = msg;
tf.x = (s.width-tf.textWidth)*0.5;
tf.y = (s.height-tf.textHeight)*0.5;
addChild(tf);
}
}
}
我会添加其他功能,这一点,甚至添加一个调整大小监听器以它为中心。您也可以添加几个按钮来关闭消息。添加精灵只会禁用消息下的任何鼠标点击。这有帮助吗?
1
在Flash中动态定位内容非常简单;属性stage.stageWidth和stage.stageHeight可用于确定Flash Player画布的大小。附加到displayList的所有DisplayObject都可以访问stage属性;唯一的问题是该属性在构造函数中将为null,因为它不会被添加到displayList中;但是,我们可以很容易地解决与事件监听器:
public class AutoStageCenterSprite extends Sprite
{
public function AutoStageCenterSprite()
{
if (stage == null) {
// Wait to be added to Stage before we activate the Resize Listener.
addEventListener(Event.ADDED_TO_STAGE, onAddedToStageEvent);
}
else {
centerOnStage();
}
}
private function onAddedToStageEvent(event : Event) : void
{
// Now we've been added we can center ourselves...
centerOnStage();
// We will also register for Resize Events so we can update our position
// is the Stage dimensions change.
stage.addEventListener(Event.RESIZE, onResizeEvent);
}
private function centerOnStage() : void
{
x = (stage.stageWidth/2) - (width/2);
y = (stage.stageHeight/2) - (height/2);
}
private function onResizeEvent(event : Event) : void
{
// This event listener will be tripped each the Stage is resized.
if (stage != null) {
centerOnStage();
}
}
}
与如何将文本字段添加到您的公式问题涉及的一个部分。 The Flash TextField API。您可以选择扩展TextField类并添加居中代码;或者使用组合来代替,并在您的AutoStageCenterSprite内部创建一个新的TextField实例。
相关问题
- 1. 在golang的终端屏幕中心显示文本
- 2. Winform的:显示(StartupPosition为中心屏幕)
- 3. FileChooserBuilder不显示在屏幕中心
- 4. 在屏幕上显示文本 - MATLAB
- 5. 偏好屏幕显示文本块
- 6. 显示文本取决于屏幕
- 7. 编写长文本在Android屏幕上显示以便屏幕滚动显示
- 8. 弹出窗口显示在屏幕中心和上下文外
- 9. 如何从文本文件显示文本到pygame屏幕上?
- 10. 在屏幕中心显示工具提示
- 11. 如何在屏幕中心显示工具提示?
- 12. 笔记本电脑关闭屏幕时的屏幕外显示?
- 13. 显示空白屏幕的PHP脚本
- 14. 如何在屏幕上显示弹出中心
- 15. UIScrollView - scrollRectToVisible - 在屏幕中心显示一个按钮?
- 16. 滚动时在屏幕上显示中心对象
- 17. AjaxControlToolkit ModelPopupExtender显示屏幕,而不是中心
- 18. react-native:在屏幕中心显示微调
- 19. 如何在屏幕中心显示图像?
- 20. 使用AR Unity在运行时的屏幕中心显示GameObject
- 21. 使用css,html在iphone webview屏幕中心显示图像
- 22. 在Cardview中显示文本,不适合屏幕
- 23. 如何在屏幕上显示文字?
- 24. C++在屏幕上未显示文字
- 25. laravel blade文件显示空白屏幕
- 26. 中心网站在屏幕
- 27. 中心屏幕的JFileChooser
- 28. Center ItemizedOverlayItem到屏幕中心
- 29. Mootools Spinner中心屏幕
- 30. 显示登录屏幕
实际上关于上面的代码,除了如果自动调整大小on on center,你只需要将x/y放到stage.stageWidth * .5和stage.stageHeight * .5而不需要设置width属性文本字段,或将其设置为0.然后,在执行这些转换之后,设置text属性。这将完美地居中。唯一需要做的小调整就是将textField.textHeight * .5添加到文本字段的y属性中,以使文本正好居中居中。 – 2011-05-13 15:35:36
对不起,忘了提及“800x600”长方形应该是舞台的宽度和高度。我没有把stage.stageWidth等的唯一原因是,从这个类的构造函数中,stage还不存在。您可以通过参数传递宽度/高度,或添加“ADDED_TO_STAGE”事件侦听器,然后根据舞台宽度/高度调整大小。再次,这是一个非常简化的类,但是@Ascension Systems指出,您可以使用自动调整中心来使字段居中。 – Corey 2011-05-13 15:44:16