2011-09-16 45 views
0

我必須在Flash動作腳本3中創建白板。我無法在白框中創建文本框屬性。當我打開瑞士法郎,我需要一個文本框屬性,我可以創建一個文本框字段永遠用戶希望。請幫忙..AS3 - 在白板上創建文本字段

+0

你的意思是,用戶需要能夠點擊的地方,有一個文本框出現在哪裏? – Marty

+0

是的。其實當用戶選擇圖標,然後如果他點擊某處文本框應該出現..我可以嘗試自己的圖標部分.. – ravi404

+0

你可以請更具體嗎? – Eugeny89

回答

0

是這樣的嗎?


Whiteboard.as

package 
{ 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 
    import flash.text.TextFieldType; 

    public class Whiteboard extends Sprite 
    { 

     private var _whiteboard : Sprite; 
     private var _currentText : TextBox; 

     public function Whiteboard() 
     { 
      super(); 

      createWhiteboard(); 

      enableUserInput(); 
     } 

     private function createWhiteboard() : void 
     { 
      // create whiteboard sprite 
      _whiteboard = new Sprite(); 

      // add to displaylist 
      addChild(_whiteboard); 

      // draw graphics 
      with(_whiteboard.graphics) 
      { 
       lineStyle(10, 0x666666, 1); 
       beginFill(0xFFFFFF, 1); 
       drawRect(0, 0, 800, 600); 
       endFill(); 
      } 
     } 

     private function enableUserInput() : void 
     { 
      _whiteboard.addEventListener(MouseEvent.CLICK, onUserInteract); 
     } 

     private function onUserInteract(event : MouseEvent) : void 
     { 
      // remove if empty 
      if(_currentText && _currentText.htmlText.length == 0) 
      { 
       // remove from displaylist 
       _whiteboard.removeChild(_currentText); 
      } 

      // add new 
      if(event.target == _whiteboard) 
      { 
       _currentText = new TextBox(); 
       _currentText.x = event.stageX; 
       _currentText.y = event.stageY; 

       // add to displaylist 
       _whiteboard.addChild(_currentText); 
      } 
      else 
      { 
       // use clicked text 
       _currentText = event.target as TextBox; 
      } 

      // set selection 
      _currentText.setSelection(0, _currentText.htmlText.length); 

      // set focus 
      stage.focus = _currentText; 
     } 

    } 

} 

import flash.text.TextField; 
import flash.text.TextFieldAutoSize; 
import flash.text.TextFieldType; 
import flash.text.TextFormat; 

class TextBox extends TextField 
{ 
    function TextBox() 
    { 
     super(); 

     background = true; 
     backgroundColor = 0xFF88FF; 
     multiline = false; 
     autoSize = TextFieldAutoSize.LEFT; 
     type = TextFieldType.INPUT; 
     htmlText = ""; 
     selectable = true; 
     defaultTextFormat = new TextFormat("_sans", 18, 0xFFFFFF); 

    } 
} 

enter image description here

+0

經過很長時間的嘗試..我是一個初學者,當我發佈這個問題。接受這個,因爲這是所需的提示.. – ravi404