ساخت رویداد کلیک به تعداد دلخواه با حلقه

سلام
من با راهنمایی دوستان و اساتید از طریق یک حلقه تعداد دلخواه ابجکت ایجاد کرده ام. و می توانم رویداد کلیک را طبق کد زیر رویشان اعمال کنم ولی مشکلم این است که هر کدام باید تابع خاصی را فراخوانی کنند در این حالت من فقط می توانم یک تابع مشخص را به آنها نسبت دهم. ولی می خواهم با کلیلک هر دکمه یک اتفاق مخصوص آن روی دهد. لطفا راهنمایی کنید چگونه این کار را بکنم.

[CPPS]
for(var i:uint=0;i<refinedArray.length;i++){
...
Object(essent_list_filtered).addEventListener(MouseEvent.CLICK,onFiltered);
}




[/CPPS]

در حال حاضر فقط محتویات داخل تابع onFiltered اجرا می شود می خواهم مثلا تابع onFiltered1 و ... نیز از طریق کلیک دکمه ها فراخوانی شود.
البته این کار را می توانم بکنم که :


[CPPS]

Object(essent_sooreh_list_filtered[0]).addEventListener(MouseEvent.CLICK,onFiltered0);
Object(essent_sooreh_list_filtered[1]).addEventListener(MouseEvent.CLICK,onFiltered1);





[/CPPS]

و الی آخر. ولی تعداد دکمه هایی که ایجاد می شوند مشخص نیست. و لذا باید خود حلقه بتواند این قسمت را نیز برایم بسازد.
 

triton

کاربر فعال
ببین دوست من، اگه می خواهی که به هر شئ یک تابع بدی، باید یکی یکی این کار را انجام بدی.
توصیه من این هست که اگر تابع شما برای تمامی اشیاء تون کار یکسانی انجام می دهد و فقط در بعضی از موارد جزئی با هم تفاوت دارند، فقط سعی کن در تابع خودت اون موارد اختلافی را بدست بیاوری و در روند اجرای خودت اعمال کنی .... مثلا فرض کن از نام اونها می خواهی در این کار استفاده کنی که با یکدیگر متفاوت هستند. برای اینکار از شئ رویداد باید استفاده کنی، به این صورت : event.currentTarget.name
در کل استفاده از یک تابع برای چند شئ بستگی زیادی به اشیاء دارد. معمولا اشیاء dynamic مثل MovieClip برای اینکار بسیار مناسب هستند.
 
سلام
ممکنه کارهایی که انجام میدن خیلی متنوع باشه. باید عملکرد متفاوتی داشته باشن و یه جورایی مستقل عمل کنند. لطفا بیشتر راهنمایی کنید و نحوه نوشتن اونو بفرمایید.
 
من پیشنهاد شما را بررسی کردم. در برخی موارد خوبه و قابل اجرا و من میتونم یک تابع تعریف کنم و با شرطهایی اون نتیجه هایی را که می خوام ازش بگیرم. ولی مشکل اینه که چیزی که برمی گردونی کد
اینه event.currentTarget.name: instance151event.currentTarget.name: instance158 یعنی شماره اینستنس را بر می گردونه و مختص اون دکمه نیست و ممکنه با دکمه های دیگه مشابه در بیاد.
دوست عزیز! آیا چیزی دیگه ای شبیه
event.currentTarget.name وجود داره که دقیقتر بتونه چیزی را از اون دکمه ام برگردونه که کاملا اختصاصی اون دکمه فقط باشه. برای کار من که یک رشته به تکست فیلد و سپس به ابجکت تبدیل میشه و سپس کلیک میشه. اگه متدی بتونه مثلا مقدار اون رشته را که داخل تکست فیلد و آبجکت هست به هم بده. قضیه فکر می کنم حل شده باشه!!
 
دوست عزیز ایده شما کمکم کرد تا به نتیجه برسم. کاری که می خوام بکنم اینه:
با کلیک اون دکمه ها یک تابع فراخوانی میشه. در اون تابع با این متد
event.currentTarget.text تکست اون که هدفم همونه و نشانه اختصاصی میتونه برای دکمه باشه بدست میاد. سپس من با یک شرط هایی براش مشخص می کنم که در زمانی که پارامتر درون شرط برقرار بود چه اتفاقی بیفته.
ولی یک مساله دیگه پیش میاد. من باید به تعداد حالتهایی که ممکنه جواب داشته باشم باید شرط تعریف کنم. مثلا اگه «گرگان» بود فلان ... اگه «تهران» بود ... و الی آخر. حالا اگه این شهرها خیلی زیاد باشند!!!! البته خودم هنوز دارم روش فکر می کنم.
ولی اگه از دوستان راه ساده تری دارند بفرمایند ممنون میشم.
 

triton

کاربر فعال
ببین دوست عزیز، اون name که من گفتم یک مثال بود و باید قبل استفاده تعیین بشه که اگه نشه خودش فلش این کار را می کنه که میشه همون چیزهایی که خودتون نوشتید ولی خوشحالم که به نتیجه ای که باید رسیدید.
اینجا دیگه بحث زبان برنامه نویسی و ساختارهای آن مطرح نیست بلکه بحث الگوریتم مطرح میشه یعنی "روش حل مسئله"
برای پاسخ به سوال شما باید مسئله بصورت صد در صدی روشن باشه، ولی در کل با توجه به توضیحات شما، در اینجور مسائل چاره ای جز این نداری و هر کس برنامه نویسی انجام میده گاهی اوقات به این گونه مثال برخورد می کنه (و چقدر هم عذاب آوره!). بهترین راه برخورد اینه که شباهت ها و تضادها را دسته بندی کنی و سعی کنی بین اونها تا جای ممکن ارتباط برقرار کنی، یک ارتباط کلی، که تمام گزینه ها را شامل بشود، البته در صورت امکان.
من خودم گاهی اوقات از نمودارهای UML یعنی نمودار Activity Diagram هم کمک میگیرم که روند را بصورت گرافیکی ببینیم و به این صورت اصلاح و تبدیل به کد کردن مسئله را راحت تر انجام بدهم.
 

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

بالا