PDA

Просмотр полной версии : StageText Android


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


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