Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   StageText Android (http://www.flasher.ru/forum/showthread.php?t=212725)

AlexCooper 15.04.2016 16:32

StageText Android
 
Всем привет.
Столкнулся с такой вот дилемой, чёт не работает StageText под Андроидом, в айосе все норм, а вот в Андроиде, выводит только несколько символов латиницы и всё, цифры и т.д. как будто не импортированны.
Где чё подкопать, шрифт вродь за импортил правильно да и пытался санс вставить, всеравно не але.
21 ейр

Код AS3:

package engine.text {
  import flash.display.DisplayObjectContainer;
  import flash.events.Event;
  import flash.events.Event;
  import flash.events.FocusEvent;
  import flash.events.KeyboardEvent;
  import flash.events.SoftKeyboardEvent;
  import flash.events.TextEvent;
  import flash.geom.Point;
  import flash.geom.Rectangle;
  import flash.text.Font;
  import flash.text.ReturnKeyLabel;
  import flash.text.SoftKeyboardType;
  import flash.text.StageText;
  import flash.text.StageTextInitOptions;
  import flash.text.TextField;
  import flash.text.TextFormat;
 
  public class SoftboardTextfield extends TextField {
 
    public static const RETURN_KEY_LABEL_GO:String            = ReturnKeyLabel.GO;
    public static const RETURN_KEY_LABEL_NEXT:String          = ReturnKeyLabel.NEXT;
    public static const RETURN_KEY_LABEL_DONE:String          = ReturnKeyLabel.DONE;
    public static const RETURN_KEY_LABEL_SEARCH:String        = ReturnKeyLabel.SEARCH;
    public static const RETURN_KEY_LABEL_DEFAULT:String      = ReturnKeyLabel.DEFAULT;
 
    public static const SOFT_KEYBOARD_TYPE_URL:String        = SoftKeyboardType.URL;
    public static const SOFT_KEYBOARD_TYPE_EMAIL:String      = SoftKeyboardType.EMAIL;
    public static const SOFT_KEYBOARD_TYPE_NUMBER:String      = SoftKeyboardType.NUMBER;
    public static const SOFT_KEYBOARD_TYPE_DEFAULT:String    = SoftKeyboardType.DEFAULT;
    public static const SOFT_KEYBOARD_TYPE_CONTACT:String    = SoftKeyboardType.CONTACT;
    public static const SOFT_KEYBOARD_TYPE_PUNCTUATION:String = SoftKeyboardType.PUNCTUATION;
 
 
    private var _donor:TextField;
 
    private var _viewport:DisplayObjectContainer;
 
    private var _stageText:StageText;
 
    public function SoftboardTextfield(
        donor:TextField,
        softKeyboardType:String = SoftboardTextfield.SOFT_KEYBOARD_TYPE_DEFAULT,
        returnKeyLabel:String = SoftboardTextfield.RETURN_KEY_LABEL_DEFAULT,
        multiline:Boolean = true
    )
    {
 
      super();
 
      _donor = donor;
 
      var format:TextFormat = donor.getTextFormat();
 
 
      var initOptions:StageTextInitOptions = new StageTextInitOptions((_donor.numLines> 1 && multiline));
 
      _stageText = new StageText(initOptions);
 
      _prompt = _donor.text;
 
      _donor.text = '';
 
      _stageText.color              = donor.textColor;
      _stageText.fontSize          = format.size as uint;
      _stageText.fontFamily        = format.font;
      _stageText.restrict          = donor.restrict;
      _stageText.maxChars          = donor.maxChars;
 
      _stageText.autoCorrect        = true;
      _stageText.displayAsPassword  = donor.displayAsPassword;
 
      _stageText.returnKeyLabel    = returnKeyLabel;
      _stageText.softKeyboardType  = softKeyboardType;
 
      _stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE,  keyboardHandler);
      _stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, keyboardHandler);
      _stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, keyboardHandler);
 
 
 
      if (_donor.stage) {
        onAddedToStage();
      } else {
        _donor.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
      }
    }
 
    private var _autoClose:Boolean = false;
 
    public function enableEnterToClosing():SoftboardTextfield {
 
      _autoClose = true;
 
      if (_stageText.hasEventListener(TextEvent.TEXT_INPUT)==false) {
        _stageText.addEventListener(TextEvent.TEXT_INPUT, inputHandler);
      }
 
      return this;
    }
 
    override public function setTextFormat(format:flash.text.TextFormat,beginIndex:int = -1,endIndex:int = -1):void{
 
      _stageText.fontSize          = format.size as uint;
      _stageText.fontFamily        = format.font;
 
    }
 
    override public function set defaultTextFormat(format:TextFormat):void{
      setTextFormat(format);
    }
 
    private function inputHandler(event:Event):void {
 
      var t:String = _stageText.text;
 
      if(t.charCodeAt(t.length-1)==10) {
 
        _stageText.text = t.substr(0, t.length-1);
 
        Framework.stage.focus = null;
 
        if (_afterFunc) _afterFunc();
      }
    }
 
    public function setManualFocus(event:Event = null):void {
      if (event) event.currentTarget.removeEventListener(event.type,setManualFocus);
      _stageText.assignFocus();
    }
 
    private var _prompt:String = '';
    private var _afterFunc:Function;
 
    private function keyboardHandler(event:SoftKeyboardEvent):void {
 
      switch (event.type) {
 
        case SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE:
            if (_stageText.text==_prompt) _stageText.text = '';
 
          break;
 
        case SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING:
 
          break;
 
        case SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE:
 
            if (_stageText.text=='') _stageText.text = _prompt;
 
          break;
      }
    }
 
    private function onAddedToStage(event:Event=null):void {
 
        if (_donor.hasEventListener(Event.REMOVED_FROM_STAGE)==false) {
          _donor.addEventListener(Event.REMOVED_FROM_STAGE, onRemoveStage);
        }
 
        if (_stageText.text=='') _stageText.text = _prompt;
 
        _viewport = _donor.parent;
 
        var searchPosition:Point = _viewport.localToGlobal(new Point(_donor.x,_donor.y));
 
        _stageText.viewPort = new Rectangle(searchPosition.x, searchPosition.y, searchPosition.x+_donor.width-20,_donor.height);
 
        _stageText.visible = true;
 
        _stageText.stage = _viewport.stage;
 
    }
 
    private function onRemoveStage(event:Event):void {
 
        _stageText.visible = false;
 
        if (_donor.hasEventListener(Event.ADDED_TO_STAGE)==false) {
          _donor.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        }
    }
 
    override public function setSelection(startIndex:int, endIndex:int):void {
      _stageText.selectRange(startIndex,endIndex);
    }
 
    override public function set text(txt:String):void {
      _stageText.text = txt;
    }
 
    override public function get text():String {
      return _stageText.text;
    }
 
    override public function set visible(status:Boolean):void{
      _stageText.visible = status;
    }
 
    override public function get visible():Boolean{
      return _stageText.visible;
    }
 
    public function afterCloseFunction(func:Function):void {
      _afterFunc = func;
    }
 
    public function destroy():void {
 
        _donor.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        _donor.removeEventListener(Event.REMOVED_FROM_STAGE, onRemoveStage);
 
        _stageText.removeEventListener(TextEvent.TEXT_INPUT, inputHandler);
        _stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE,  keyboardHandler);
        _stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, keyboardHandler);
        _stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, keyboardHandler);
 
        _stageText.stage = null;
 
        _stageText = null;
 
        _viewport = null;
 
        _donor = null;
    }
  }
}



Часовой пояс GMT +4, время: 01:34.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.