عوض شدن ترتیب کارکترها در هنگام تایپ در اینپوت باکس

شروع موضوع توسط splinter cell ‏12 اکتبر 2013 در انجمن Action Script 3

  1. splinter cell

    splinter cell Well-Known Member

    ارسال‌ها:
    874
    تشکر شده:
    1,577
    امتیاز دستاورد:
    93
    با سلام به همه دوستان
    یک اینپوت باکس در صفحه داریم که کاربر قراره حاصل تفریق دو عدد زیر رو در اون بنویسه.از اونجایی که طبق عادت دانش آموز اول یکان ها بعد دهگانها و صدگان و... رو از هم کم میکنه پس مینویسه 531 ولی جواب135 هست.حالا میخواستم بدونم چطور میشه کاری کنیم بعد از ورود هر کارکتر ، مکان نما بره اول متن و کارکتر بعدی در اول متن قرار بگیره. مثل وقتی خودمون روی کاغذ حاصل تفریق رو پیدا میکنیم و رقم به رقم مینویسیم.
    امیدوارم منظورم رو رسونده باشم.:rose:

    sum.GIF
     

    پیوست ها:

    • sum.JPG
      sum.JPG
      اندازه فایل:
      کیلوبایت 4.2
      نمایش ها:
      15
    نوشته شده توسط splinter cell در ‏12 اکتبر 2013
  2. javadsavary

    javadsavary Member

    ارسال‌ها:
    97
    تشکر شده:
    64
    امتیاز دستاورد:
    18
    [PHPS]import fl.text.TLFTextField;
    import flash.events.KeyboardEvent;

    t.addEventListener(KeyboardEvent.KEY_DOWN,fun);

    function fun(e:KeyboardEvent)
    {
    var s:String;
    switch (e.charCode)
    {
    case 48 :
    s = '0';
    break;
    case 49 :
    s = '1';
    break;
    case 50 :
    s = '2';
    break;
    case 51 :
    s = '3';
    break;
    case 52 :
    s = '4';
    break;
    case 53 :
    s = '5';
    break;
    case 54 :
    s = '6';
    break;
    case 55 :
    s = '7';
    break;
    case 56 :
    s = '8';
    break;
    case 57 :
    s = '9';
    break;
    }
    if (t.text == '')
    {

    }
    else
    {
    t.text = s+t.text;
    trace(e.charCode);
    }
    }[/PHPS]
     

    پیوست ها:

    • text.rar
      اندازه فایل:
      کیلوبایت 45.3
      نمایش ها:
      38
    نوشته شده توسط javadsavary در ‏12 اکتبر 2013
    amator_flash و splinter cell از این پست تشکر کرده اند.
  3. splinter cell

    splinter cell Well-Known Member

    ارسال‌ها:
    874
    تشکر شده:
    1,577
    امتیاز دستاورد:
    93
    ممنون از شما
    مشکلی که هست اینه که من نمیخوام ازtlf استفاده کنم.و توی اینپوت باکس معمولی وقتی یک رقم رو وارد میکنی بعد رقم دوم رو میزنی کل عدد رو یکبار دیگه تکرار میکنه و یه جورایی خوب کار نمیکنه.تست کنید
     
    نوشته شده توسط splinter cell در ‏12 اکتبر 2013
  4. splinter cell

    splinter cell Well-Known Member

    ارسال‌ها:
    874
    تشکر شده:
    1,577
    امتیاز دستاورد:
    93
    دوستان دیگه و خبرگان انجمن راه حلی ندارند واسه حل این مشکل؟
    با سپاس
     
    نوشته شده توسط splinter cell در ‏15 اکتبر 2013
  5. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    بهتره به جای یه تکست باکس ،از چند تکست باکس استفاده بشهویعنی برا هر رقم یه تکست باکس جدید با maxlength به عدد 1... بعد کلی با ضرب رقم یکان در 1 و ضرب عدد دهگان در 10 و صد گان در صد و ... و جمع حاصل رب ها ،می تودی مقایسه کنید که آیا عدد محاسبه شده با عدد نهاییت حاصل تفریق برابر هست یا نه...
     
    نوشته شده توسط ++Hadi++ در ‏16 اکتبر 2013
    amator_flash و splinter cell از این پست تشکر کرده اند.
  6. splinter cell

    splinter cell Well-Known Member

    ارسال‌ها:
    874
    تشکر شده:
    1,577
    امتیاز دستاورد:
    93
    ممنون از توجه شما هادی جان
    ولی اونطوری مدام باید با ماوس روی اینپوت باکسها کلیک کنه تا بتونه توی هر کدوم تایپ کنه.و تازه اگر خودمون فوکوس رو بعد از تایپ یک رقم به اینپوت باکس بعدی ببریم و احتمالاً اشتباه تایپ کرده باشه و بخواد رقم رو تصحیح کنه باز باید با ماوس روی قبلی کلیک کنه و این خودش کلی درد سره.
    روش پست بالا خیلی خوبه ولی نمیدونم چرا توی اینپوت باکس های معمولی دو تا دوتا عددها تایپ میشن؟
     
    نوشته شده توسط splinter cell در ‏16 اکتبر 2013
    amator_flash از این پست تشکر کرده است.
  7. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    سلام
    این یه شبیه سازی input text با استفاده از dynamic text هست که خودشم فقط اعداد رو قبول می کنه...اعداد منفی و ... رو خیلی روش کار نکردم ولی الان یادم اومد که بهتره برا اینکه دش با علامت منفی قاطی نشه ،به جای دش یا - از | استفاده کنید...
    من delete اونو ننوشتم ولی خودتون دیگه بنویسید ساده هست و تقریبا چیزی که خواستید هستش فقط سعی کنید تست کنید من خیلی تست نکردم شاید باگ داشته باشه...بای...
    PHP:

    import flash.text.TextField;
    import flash.events.KeyboardEvent;
    import flash.events.Event;
    import flash.events.FocusEvent;
    import flash.utils.setInterval;
    import flash.utils.clearInterval;
    import flash.utils.setTimeout;

    var n1:int=526;
    var n2:int=455;
    var n3=n1-n2;
    t1.text=n1.toString();
    t2.text=n2.toString();
    var Focused:Boolean=false;
    var hasDashSign:Boolean=false;
    var id:int=0;

    TextField(t3).addEventListener(KeyboardEvent.KEY_DOWN,onDownKeyboard);
    TextField(t3).addEventListener(FocusEvent.FOCUS_IN,focusInFunc);
    TextField(t3).addEventListener(FocusEvent.FOCUS_OUT,focusOutFunc);

    function onDownKeyboard(evt:KeyboardEvent):void
    {
        setTimeout(SetNumber,100,evt);
    }
    function SetNumber(evt:KeyboardEvent):void
    {
        var newNumStr:String=checkSign(evt);
        TextField(t3).text=newNumStr+TextField(t3).text;
    }
    function checkSign(evt:KeyboardEvent):String
    {
        trace(evt.keyCode);
        var output:String="";
        switch(evt.keyCode)
        {
            case 48:
                output="0";
            break;
            case 49:
                output="1";
            break;
            case 50:
                output="2";
            break;
            case 51:
                output="3";
            break;
            case 52:
                output="4";
            break;
            case 53:
                output="5";
            break;
            case 54:
                output="6";
            break;
            case 55:
                output="7";
            break;
            case 56:
                output="8";
            break;
            case 57:
                output="9";
            break;
            case 96:
                output="0";
            break;
            case 97:
                output="1";
            break;
            case 98:
                output="2";
            break;
            case 99:
                output="3";
            break;
            case 100:
                output="4";
            break;
            case 101:
                output="5";
            break;
            case 102:
                output="6";
            break;
            case 103:
                output="7";
            break;
            case 104:
                output="8";
            break;
            case 105:
                output="9";
            break;
            default:
                output="";
            break;
        }
        return output;
    }
    function focusInFunc(evt:FocusEvent):void
    {
        Focused=true;
        clearInterval(id);
        id=setInterval(runtime,1000);
    }
    function focusOutFunc(evt:FocusEvent):void
    {
        clearInterval(id);
        if(Dash)
        {
            Dash=false;
        }
        Focused=false;
    }
    function runtime():void
    {
        if(Focused)
        {
            Dash=!Dash;
        }
    }
    function get Text():String
    {
        var output:String=TextField(t3).text;
        if(Dash)
        {
            output=output.substr(0,output.length-2);
        }
        return output;
    }
    function set Dash(value:Boolean):void
    {
        hasDashSign=value;
        var str:String=TextField(t3).text;
        if(str==null)str="";
        if(hasDashSign)
        {
            TextField(t3).text=(str.charAt(str.length-1)!="-")?str+"-":str;
        }
        else
        {
            TextField(t3).text=(str.charAt(str.length-1)=="-")?str.substr(0,TextField(t3).text.length-1):str;
        }
    }
    function get Dash():Boolean
    {
        return hasDashSign;
    }


     
     

    پیوست ها:

    • math input.rar
      اندازه فایل:
      کیلوبایت 8.1
      نمایش ها:
      31
    نوشته شده توسط ++Hadi++ در ‏16 اکتبر 2013
    splinter cell از این پست تشکر کرده است.

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