TextLayout Component

BioDread

Banned
سلام
من تاحالا این طوری تو دردسر نیوفتادم

کسی میدونه چطوری میشه از کامپوننت textlayout که در stage هست مقادیرشو trace و یا نوشت ؟

آیا کسی میدونه که چطور میشه چنتا کاراکتر در متن textlayout رو بهش textformat داد!!؟
منظورم همون setTextformat خودمون در TextField هست

:sad:
 

fafa^mx

Member
همونطور که یک کلاس برای import textflow هست یه کلاس هم برای export اون وجود داره که سه حالت خروجی میده.
 

arjmand200

Member
ببین textlayout واسه اینکه متن رو نشون بده مستقیما از یه کلاس به نام textflow استفاده میکنه که با استفاده از این متد میتونی متن رو به textlayout ایمپورت کنی

PHP:
var markup:String = "Hello World, this is plain text";
var flow:TextFlow = TextFilter.importToFlow(markup, TextFilter.PLAIN_TEXT_FORMAT);

حالا میتونی این متن رو هم به این صورت export کنی :

PHP:
var ptext:String = "Hello, World";
var flow:TextFlow = TextFilter.importToFlow(ptext, TextFilter.PLAIN_TEXT_FORMAT);
var out:XML = TextFilter.export(flow, TextFilter.TEXT_LAYOUT_FORMAT,
ConversionType.XML_TYPE );

ptext هم میتونی تگ markup توی textlayout باشه markup همون دکمه پایینی که وقتی روش کلیک میکنی همون textflow رو به صورت xml نشون میده

اگه با این توضییحات نتونستی مشکل رو حل کنی بعدا واست به صورت کامل توضییح میدم چون یکم کدنویسی textlayout پیچیدس
 
آخرین ویرایش:

BioDread

Banned
ببین ارجمند

من می خوام با textlayout دوتا textfield داشته باشم که یکی متن توش ثابت باشه مثلا "سلام دوست من"

دومی حالت inputداشته باشه که وقتی کاربر توش تایپ کرد "سلام دوست من" یه اتفاقی بیوفته

ببین من یه کدهایی که بشه دوتا TF رو تولید کرد دارم اما نمیتونم باهم مقایسه شون کنم

PHP:
    import flashx.textLayout.container.DisplayObjectContainerController;
    import flashx.textLayout.container.IContainerController;
    import flashx.textLayout.elements.Configuration;
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.CharacterFormat;
    import flashx.textLayout.formats.ParagraphFormat;
    import flashx.textLayout.formats.JustificationRule;
    import flashx.textLayout.formats.TextAlign;
    import flash.text.engine.FontPosture;
    import flash.text.engine.Kerning;
    import flashx.textLayout.edit.EditManager;
     import flashx.textLayout.conversion.TextFilter;



var edit:EditManager = new EditManager();
var config:Configuration = new Configuration();
var charFormat:CharacterFormat = new CharacterFormat();
var paraFormat:ParagraphFormat = new ParagraphFormat();


charFormat.color = 0;
charFormat.fontFamily = "B Titr";
charFormat.fontSize = 20;

paraFormat.textAlign = TextAlign.RIGHT;

config.textFlowInitialCharacterFormat = charFormat;
config.textFlowInitialParagraphFormat = paraFormat;

var textFlow:TextFlow = new TextFlow(config);

var p:ParagraphElement = new ParagraphElement();
var p2:ParagraphElement = new ParagraphElement();
var span:SpanElement = new SpanElement();
var span2:SpanElement = new SpanElement();
var markup:String = "سلام دوست من";
var flow:TextFlow = TextFilter.importToFlow(markup, TextFilter.PLAIN_TEXT_FORMAT);  


span.text = "کامپیوتر من";
//span2.text = "کامپیوتر من1";
p.addChild(span);
//p2.addChild(span2);
textFlow.addChild(p);
//textFlow.addChild(p2);



textFlow.flowComposer.addController(new DisplayObjectContainerController(this,200,500));
textFlow.flowComposer.updateAllContainers(); 
textFlow.interactionManager = new EditManager();

flow.flowComposer.addController(new DisplayObjectContainerController(this,200,500));
flow.flowComposer.updateAllContainers(); 
//flow.interactionManager = new EditManager();

اگه میشه منو تو این مورد راهنمایی کن
مهمه مرسی!
 

arjmand200

Member
ببین مسله خیلی سادس تو باید یه export از textflow بگیری من اونموقع هم این رو بهت گفتم با این کد کار خیلی ساده تر و میتونی بعد از export یه ابجکت xml بگیری میتونی اون رو با ابجکت xml رو خودت تجزیه کنی این کد رو ببین :

PHP:
var xmlOut:Object = TextFilter.export(textFlow, TextFilter.TEXT_LAYOUT_FORMAT, ConversionType.XML_TYPE);

اگه میرفتی قسمت online documantion textlayout میتونستی این رو ببینی :

PHP:
public static function export(source:TextFlow, format:String, conversionType:String, config:ImportExportConfiguration = null):Object

من این مثال رو میزنم تا بتونی کامل منظورم رو بدونی :

PHP:
import flash.display.Sprite;
import flashx.textLayout.compose.StandardFlowComposer;
import flashx.textLayout.container.DisplayObjectContainerController;
import flashx.textLayout.container.IContainerController;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.conversion.TextFilter;
import flashx.textLayout.conversion.ConversionType;

var markup:String = "<TextFlow xmlns='http://ns.adobe.com/textLayout/2008'><p><span>سلام خدمت دوست عزیز</span></p></TextFlow>";
var textFlow:TextFlow = TextFilter.importToFlow(markup, 
TextFilter.TEXT_LAYOUT_FORMAT);
textFlow.flowComposer.addController(new 
DisplayObjectContainerController(this, 200, 50));
textFlow.flowComposer.updateAllContainers();
var xmlOut:Object = TextFilter.export(textFlow, TextFilter.TEXT_LAYOUT_FORMAT, ConversionType.XML_TYPE);
trace(xmlOut);
 

BioDread

Banned
سلام
ارجمند در DisplayObjectContainerController سه تا مقدار می گیره که اولی DisplayObjectContainer دومی و سومی width و height هست

من چطوری میتونم x و y انو تعیین کنم

اصلان همچین چیزی نداشت
 

BioDread

Banned
سلام
می خواستم بدونم که آیا TextLayout امکان hightlight یا دادن setTextFormat داره؟

چون من یه سورس دیدم که خوده طرف امده بود خودش با MC یه hightlight نوشته بود

و من شنیده بودم که خوده TextLayout امکان hightlight داره !!!
 
بالا