آموزش جستجوی به ترتیب یک لغت در یک فیلد متنی

شروع موضوع توسط yaa110 ‏15 آگوست 2011 در انجمن برنامه فلش Flash

کلمات کلیدی:
  1. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    503
    امتیاز دستاورد:
    16
    در این درس نحوه جستجوی به ترتیب (مشابه Find Next) یک لغت در یک فیلد متنی و انتخاب این لغات آموزش داده می‌شود، به طوری که بعد از هر بار کلیک روی دکمه مربوط به Find Next لغت مورد نظر بعدی انتخاب می‌شود.

    ۱- ابتدا یک دکمه به نام find_next_btn، یک فیلد متنی به نام target_txt به عنوان فیلد متنی اصلی و یک فیلد متنی برای نوشتن کلمه مورد نظر جستجو به نام search_txt بسازید.

    [​IMG]

    ۲- ابتدا یک متغیر برای پیدا کردن اندیس بعدی و یک Event Listener برای دکمه Find Next می‌سازیم.

    کد (Text):
    var i:Number = 0;
    find_next_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
     
    3- حالا تابعی را که بعد از کلیک روی دکمه فراخوانی می‌شود، تعریف می‌کنیم.

    کد (Text):
    function fl_MouseClickHandler(event:MouseEvent):void {
        target_txt.alwaysShowSelection = true;
        i = target_txt.text.indexOf(search_txt.text, i) + search_txt.length;
        target_txt.setSelection(i - search_txt.length, i);
        if (target_txt.text.indexOf(search_txt.text, i) < 0) {
            i = 0;
        }
    }
    در این تابع:

    ابتدا با دستور alwaysShowSelection وضعیت نمایش ناحیه انتخاب شده را به صورت همیشه فعال تبدیل می‌کنیم تا حتی زمانی که Focus روی سایر اشیاست هم ناحیه انتخاب شده دیده شود.
    مقدار i را برای پیدا کردن لغت بعدی آماده می‌کنیم. برای این کار طول رشته لغت مورد نظر را به اندیس پیدا شده اضافه می‌کنیم.
    لغت مورد نظر را به کمک دستور setSelection روی target_txt نشان می‌دهیم.
    در صورتی که اندیس آخرین لغت هم پیدا شد، به کمک دستور if جستجو را از ابتدا شروع می‌کنیم. در این دستور فرض شده است که بعد از آخرین لغت پیدا شده، مقدار ۱- برای دستور indexOf برگردانده شود.

    http://flashcenter.ir/fa/?p=43
     
    آخرین ویرایش: ‏20 جولای 2013
    نوشته شده توسط yaa110 در ‏15 آگوست 2011
    s.o.a.d، alireza4، ++Hadi++ و 4 نفر دیگر از این ارسال تشکر کرده اند.

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