2011-01-05 63 views
2

我試圖在屏幕上繪製一個文本框。如果我將寬度和高度分配給任何值,如下面的代碼所示,我沒有看到任何繪製的內容。爲什麼是這樣?寬度和高度有什麼用處? Adobe的文檔說它是以像素爲單位的精靈的寬度/高度。爲什麼會遮擋或阻止繪製文本框或其他框?我認爲寬度/高度會設置這個精靈可以被繪製的區域,但基於此,我可能是錯誤的。當我更改初始sprite的寬度時,文本框消失

在此先感謝。

-Nick

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(); 
    } 
} 

}

+0

只是嘗試創建文本字段,然後設置容器的寬度/高度。仍然,不完全明白你的最終目標是什麼...... – goliatone 2011-01-05 09:49:17

+0

我只是想顯示一個文本框。我很困惑,爲什麼設置BareBones的尺寸會導致文本框不顯示。 – Nikhil 2011-01-05 13:35:27

回答

0

當您在構造函數中,你實際上影響scaleXscaleY變量,進而影響根系的transform.matrix設置widthheight

爲了解如何設置scaleX,Flash處理剪輯中的內容。例如,如果您有一個帶有100x100框的MovieClip,並且您設置了width = 200,則Flash會計算出您的意思是scaleX = 2

但是你在一個剪輯沒有它設置widthheight。結果是scaleXscaleY都被設置爲0.

+0

TextField算作什麼? – Nikhil 2011-01-07 03:21:43

+0

我在step方法中添加了一個graphics.drawrect(0,0,1000,500)調用,並試圖將寬度和高度設置爲1000和500,並且它什麼都沒畫。文本字段也消失了。也許我正在錯誤地畫這個。我的繪製代碼是以下6行。我基於我在這裏找到的代碼示例:http://www.brighthub.com/internet/web-development/articles/11012.aspx backBuffer = new BitmapData(1000,500,false); backBuffer.fillRect(backBuffer.rect,clearColor); graphics.clear(); graphics.beginBitmapFill(backBuffer,null,false,false); graphics.drawRect(0,0,1000,500); graphics.endFill(); – Nikhil 2011-01-07 03:34:37

+0

@Nikhil:TextField會計算某些東西,但是您尚未在設置寬度和高度的位置添加它。嘗試改變語句的順序。 – 2011-01-07 09:46:19

相關問題