【问题标题】:Textbox disappears when I change width of initial sprite当我更改初始精灵的宽度时,文本框消失
【发布时间】:2011-01-05 04:11:44
【问题描述】:

我正在尝试在屏幕上绘制一个文本框。如果我将宽度和高度分配给任何值,如下面的代码所示,我看不到任何绘制。为什么是这样?宽度和高度有什么用? Adobe 的文档说这是精灵的宽度/高度(以像素为单位)。为什么会遮挡或阻止文本框或另一个框的绘制?我假设宽度/高度将设置此精灵可以绘制的区域,但基于此,我可能错了。

提前致谢。

-尼克

package {

import flash.display.Sprite;
import flash.events.Event;
import mx.core.* ;
import mx.collections.* ;
import flash.display.* ;
import flash.text.* ;

[SWF(width=1000,height=500)]
public class BareBones extends Sprite
{
    public var backBuffer:BitmapData;
    public var clearColor:uint = 0xFF0043AB;
    public var display_txt:TextField;
    public var i:uint = 0
    public function BareBones()
    { 
        addEventListener(Event.ENTER_FRAME, step);
        width = 1000;
        height = 500;
        display_txt = new TextField();
        display_txt.text = "Hello World!";
        addChild(display_txt);
    }

    private function step(event:Event) : void
    {
        i++;
        display_txt.text = i.toString();
    }
}

}

【问题讨论】:

  • 尝试创建文本字段,然后设置容器的宽度/高度。不过,还没有完全理解你的最终目标是什么……
  • 我只是想显示一个文本字段。我很困惑为什么设置 BareBones 的尺寸会导致文本字段不显示。

标签: actionscript-3


【解决方案1】:

当您在构造函数中设置widthheight 时,实际上会影响scaleXscaleY 变量,进而影响root 的transform.matrix

为了知道如何设置scaleX,Flash 会处理剪辑内的内容。例如,如果您有一个包含 100x100 框的 MovieClip,并且您设置了 width = 200,Flash 将计算出您的意思是 scaleX = 2

但是,您在其中 nothing 的剪辑上设置 widthheight。结果是scaleXscaleY 都被设置为0。

【讨论】:

  • TextField 算不算什么?
  • 我在 step 方法中添加了 graphics.drawrect(0,0,1000,500) 调用,并尝试将宽度和高度设置为 1000 和 500,但它什么也没画。文本字段也消失了。也许我画错了。我的绘制代码是以下 6 行。我基于在这里找到的示例代码:brighthub.com/internet/web-development/articles/11012.aspx backBuffer = new BitmapData(1000, 500, false); backBuffer.fillRect(backBuffer.rect, clearColor);图形.clear(); graphics.beginBitmapFill(backBuffer, null, false, false); graphics.drawRect(0, 0, 1000, 500); graphics.endFill();
  • @Nikhil:TextField 会很重要,但您尚未在设置宽度和高度的位置添加它。尝试更改语句的顺序。
  • 感谢您的帮助。这下全说通了。有点不直观,但我已经掌握了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
相关资源
最近更新 更多