استفاده از چند فرمت در یک فیلد متنی

شروع موضوع توسط niny-goloo ‏13 سپتامبر 2011 در انجمن Action Script 3

  1. niny-goloo

    niny-goloo Member

    ارسال‌ها:
    73
    تشکر شده:
    23
    امتیاز دستاورد:
    6
    سلام دوستان
    من هر چی سرچ کردم تو گوگل و انجمن چیزی پیدا نکردم در این رابطه
    پس لطفا اگه میشه راهنماییم کنید.
    من یه فیلد متنی می سازم و با استفاده از یه حلقه چندتا متن که تو یه ارایه است بهش اضافه میکنم
    و با یه تابع که ساختم یه فرمت به هر قسمت از متن که اضافه میشه میخوام اختصاص بدم.
    من این برنامه رو اینجوری نوشتم
    از دیروز گیج شدم.
    کار اصلی این برنامه یه چیز دیگه است. من یه کوچلوشو نوشتم واسه سمپل که داره گیج میزنه و کاری که باید رو انجام نمیده . ممنون میشم راهنماییم کنید.
     

    پیوست ها:

    • text2.zip
      اندازه فایل:
      کیلوبایت 6.2
      نمایش ها:
      58
    نوشته شده توسط niny-goloo در ‏13 سپتامبر 2011
  2. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    سلام
    دو تا ره :
    1- برا هر تگ یه تکست فیلد بسازین و در اون تگ مشخصات فرمت تکست رو از اون تگ html بگیرین و فرمت اون تکست فیلد رو با اونمشخصات ست کنین.
    2- از مشخصه htmlText استفاده کنین. سمپلش تو امضامه البته مطمئن نیستم که صد در صد در tlf ساپورت شه. حد اقل مثل فایر فاکس عمرا.
    3- از setTextFormat استفاده کنین :
    PHP:

    var tlf:TLFTextField=new TLFTextField();
    addChild(tlf);
    tlf.text="Hello";
    tlf.setTextFormat(myFormat,0,2);
     
    پس از ایندکس اول تا دو تا بعد ، به فرمت مد نظر در می یاد البته باید فرمت رو بسازین و من خلاصه کردم.
     
    نوشته شده توسط ++Hadi++ در ‏13 سپتامبر 2011
    mohammad.sub7 از این پست تشکر کرده است.
  3. niny-goloo

    niny-goloo Member

    ارسال‌ها:
    73
    تشکر شده:
    23
    امتیاز دستاورد:
    6
    دوست عزیز جناب هادی جان شما سپلی که من گذاشته بودم دیدید؟
    من از SetTextFormat استفاده کردم و به مشکل برخوردم
    مشکل من یه کم پیچیده تر از این حرفاست.
    از htmlText هم نمیخوام استفاده کنم. چون یه سری مشکلات دیگه داره
     
    نوشته شده توسط niny-goloo در ‏13 سپتامبر 2011
  4. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    خیر
    وقت نداشتم ببینم ...
    ببخشین در کل ست کردن فرمت های مختلف در یه تکست فیلد اینجوری هست.

    سمپلتونو دان کردم. انشالا تا فردا خبرشو بهتون می دم... بای...
     
    نوشته شده توسط ++Hadi++ در ‏13 سپتامبر 2011
  5. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    سلام
    PHP:

    //In the name Of God--بسم الله الرحمن الرحیم
    //designed by Hadi  Abbasi -> ++Hadi++
    //forum.majidonline.com -> flash group administrator
    import fl.text.TLFTextField;
    import flash.text.TextFormat;
    import flash.net.URLLoader;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.net.URLRequest;

    //Variables
    var FormatArray:Array=new Array();
    var FormatArray2:Array=new Array();
    var tlf:TLFTextField=new TLFTextField();
    var tlf2:TLFTextField=new TLFTextField();
    var xml:XML=null;
    var uloader:URLLoader=new URLLoader();
    var txtIndex:int=0;
    //Set Properties
    addChild(tlf);
    addChild(tlf2);
    tlf.width=300;
    tlf2.width=300;
    tlf2.x=300;
    tlf.autoSize='left';

    tlf.y=50;
    tlf2.y=100;
    tlf.selectable=tlf2.selectable=true;
    tlf.border=tlf2.border=true;
    tlf.direction=tlf2.direction='rtl';
    tlf.wordWrap=false;
    tlf2.wordWrap=true;
    tlf.multiline=false;
    tlf2.wordWrap=true;
    uloader.addEventListener(Event.COMPLETE,comp);
    uloader.addEventListener(IOErrorEvent.IO_ERROR,Err);
    uloader.load(new URLRequest("XML.xml"));
    //Functions
    function Err(evt:IOErrorEvent):void
    {
        trace("Error In IO!");
    }
    function comp(evt:Event):void
    {
        uloader.removeEventListener(Event.COMPLETE,comp);
        uloader.removeEventListener(IOErrorEvent.IO_ERROR,Err);
        var can:Boolean=true;//if inner structure of xml is true it will be true else will be false to stop the program
        try
        {
            xml=XML(evt.target.data);
        }
        catch(Err:Error)
        {
            can=false;
            trace("The Structure of xml is not true!");
        }
        finally
        {
            if(can)
            {
                Start();
            }
        }
    }
    function Start():void
    {
        for(var i:int=0;i<xml.Item.length();i++)
        {
            tlf.text+=xml.Item[i][email protected]name.toString()+"    ";
            tlf2.text+=xml.Item[i][email protected]name.toString()+'\n';
            SetFormats(i,xml.Item[i][email protected]name.toString());
        }
        setTimeout(SetFormatsMain,1000);
    }
    function SetFormats(I:int,str:String):void
    {
        var format:TextFormat=new TextFormat();
        switch(xml.Item[I][email protected]Font.toString().toLowerCase())
        {
            case "times":
                format.font=new Times().fontName;
                break;
            case "yekan":
                format.font=new Yekan().fontName;
                break;
            case "times":
                format.font=new Impact().fontName;
                break;
            case "times":
                format.font=new Morvarid().fontName;
                break;
            case "times":
                format.font=new Nazanin().fontName;
                break;
            case "times":
                format.font=new Tahoma().fontName;
                break;
            default:
                format.font=new Times().fontName;
                break;
        }
        format.size=int(xml.Item[I][email protected]Size.toString());
        format.color=uint(xml.Item[I][email protected]Color.toString());
        format.bold=(xml.Item[I][email protected]Bold.toString().toLowerCase()=="true")?true:false;
        format.italic=(xml.Item[I][email protected]Italic.toString().toLowerCase()=="true")?true:false;
        format.underline=(xml.Item[I][email protected]Underline.toString().toLowerCase()=="true")?true:false;
        format.align=xml.Item[I][email protected]Align.toString();
        FormatArray.push({_format:format,_start:tlf.text.length-(xml.Item[I][email protected]name.toString().length+4),_end:tlf.text.length-4});
        FormatArray2.push({_format:format,_start:tlf2.text.length-(xml.Item[I][email protected]name.toString().length+1),_end:tlf2.text.length-1});
    }
    function SetFormatsMain():void
    {
        tlf2.autoSize='right';
        for(var i:int=0;i<xml.Item.length();i++)
        {
            tlf.setTextFormat(FormatArray[i]._format,FormatArray[i]._start,FormatArray[i]._end);
            tlf2.setTextFormat(FormatArray2[i]._format,FormatArray2[i]._start,FormatArray2[i]._end);
            trace(tlf2.text.substring(FormatArray2[i]._start,FormatArray2[i]._end));
        }
    }
     
    سمپلو دان کن ...
    در ضمن الان داینامیکه و فقط کافیه تو ایکسمل تگ ها رو زیاد کنین ولی فونتهاشون باید یکی از اون شیش تا فونت بشه..
    بای...
     

    پیوست ها:

    نوشته شده توسط ++Hadi++ در ‏14 سپتامبر 2011
    ali_1748، mohammad.sub7 و niny-goloo از این ارسال تشکر کرده اند.

به اشتراک بگذارید