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

yaa110

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

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

findnext.png


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

کد:
var i:Number = 0;
find_next_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);

3- حالا تابعی را که بعد از کلیک روی دکمه فراخوانی می‌شود، تعریف می‌کنیم.

کد:
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
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا