اجزای برنامه و رابط کاربری باید با یکدیگر ارتباط برقرار کنند. برای مثال یک دکمه باید بداند که کاربر روی این دکمه کلیک کرده است. دکمه ممکن است تغییر رنگ برای نشان دادن وضعیت خود و یا انجام برخی از منطق. همچنین اپلیکیشن باید بداند که کاربر روی دکمه کلیک می کند یا خیر. برنامه ممکن است نیاز به رله این رویداد کلیک به برنامه های کاربردی دیگر.
کیو ام ال دارای مکانیزم سیگنال و کنترل کننده است که سیگنال رویداد است و سیگنال از طریق کنترل کننده سیگنال پاسخ داده می شود . هنگامی که یک سیگنال ساطع می شود, کنترل سیگنال مربوطه فراخوانی شده است. قرار دادن منطقی مانند اسکریپت یا سایر عملیات در کنترل کننده اجازه می دهد تا کامپوننت به رویداد پاسخ دهد.
دریافت سیگنال با کنترل کننده سیگنال
برای دریافت اطلاع رسانی هنگامی که یک سیگنال خاص برای یک شی خاص ساطع, تعریف شی باید یک کنترل سیگنال به نام در اعلام , جایی که نام سیگنال است, با حرف اول با حروف بزرگ. کنترل کننده سیگنال باید حاوی کد جاوا اسکریپت باشد تا هنگام فراخوانی کنترل کننده سیگنال اجرا شود.
مثلا, نوع دکمه از ماژول کیوت کنترل سریع دارای یک سیگنال کلیک, که ساطع می شود هر زمان که دکمه کلیک. در این حالت باید کنترل کننده سیگنال برای دریافت این سیگنال یکبار کلیک شود . در مثال زیر, هر زمان که دکمه کلیک می شود, کنترل کلیک استناد است, استفاده از یک رنگ تصادفی به مستطیل پدر و مادر:
کنترل کننده های سیگنال تغییر املاک
یک سیگنال به طور خودکار ساطع زمانی که ارزش یک تغییر اموال کیو ام ال. این نوع از سیگنال یک سیگنال تغییر اموال و گرداننده سیگنال برای این سیگنال ها در فرم نوشته شده است تغییر , جایی که نام اموال است, با حرف اول با حروف بزرگ.
به عنوان مثال نوع موسره دارای خاصیت فشرده شده است. برای دریافت یک اعلان هر زمان که این ویژگی تغییر, ارسال یک کنترل کننده سیگنال به نام درجهتغییر :
اگرچه مستندات تافندلر یک کنترل کننده سیگنال به نام را مستند نمی کندتغییر شده فشار داده شده, سیگنال به طور ضمنی با این واقعیت فراهم می شود که ویژگی فشرده شده وجود دارد.
پارامترهای سیگنال
سیگنال ها ممکن است پارامترهایی داشته باشند. برای دسترسی به کسانی که, شما باید یک تابع به کنترل اختصاص. هم توابع پیکان و هم توابع ناشناس کار می کنند.
برای مثال های زیر یک کامپوننت وضعیت با یک سیگنال خطا را در نظر بگیرید (برای اطلاعات بیشتر در مورد چگونگی افزودن سیگنال ها به انواع سفارشی کیو ام ال را ببینید).
توجه: نام پارامترهای رسمی در تابع لازم نیست با پارامترهای موجود در سیگنال مطابقت داشته باشد.
اگر شما لازم نیست برای رسیدگی به تمام پارامترهای, ممکن است به حذف انتهایی:
این ممکن است به ترک کردن پارامترهای پیشرو شما علاقه مند هستند, با این حال شما می توانید برخی از نام حفره یا سوراخ نشان می دهد به خوانندگان که مهم نیستند استفاده:
توجه داشته باشید: به جای استفاده از یک تابع, ممکن است, اما دلسرد, به استفاده از یک بلوک کد ساده. در این صورت تمام پارامترهای سیگنال به محدوده بلوک تزریق می شوند. با این حال, این می تواند خواندن کد را دشوار کند زیرا مشخص نیست که پارامترها از کجا ناشی می شوند, و منجر به جستجوی کندتر در موتور کیو ام ال می شود. تزریق پارامترها به این روش منسوخ می شود و در صورت استفاده واقعی از پارامتر باعث هشدارهای زمان اجرا می شود.
با استفاده از نوع اتصالات
در بعضی موارد ممکن است دسترسی به سیگنالی خارج از جسمی که ساطع می کند مطلوب باشد. برای این منظور ماژول کیوت سریع نوع اتصالات را برای اتصال به سیگنال های اجسام دلخواه فراهم می کند. یک شی اتصالات می تواند هر سیگنالی را از هدف مشخص شده خود دریافت کند.
مثلا, کنترل بر روی کلیک در مثال قبلی می تواند توسط مستطیل ریشه به جای دریافت شده است, با قرار دادن کنترل بر روی یک شی اتصالات است که هدف خود را به دکمه :
کنترل کننده های سیگنال پیوست شده
یک کنترل کننده سیگنال متصل سیگنالی را از یک نوع اتصال دریافت می کند تا جسمی که کنترل کننده اعلام می شود.
مثلا مولفه.تکمیل شده یک کنترل کننده سیگنال متصل است. اغلب برای اجرای برخی از کدهای جاوا اسکریپت هنگامی که روند ایجاد کامل است استفاده می شود. در اینجا یک مثال است:
کنترل کننده تکمیل شده به سیگنال تکمیل شده از نوع مستطیل پاسخ نمی دهد. بجای, یک شی از نوع مولفه اتصال با یک سیگنال تکمیل شده به طور خودکار به شی مستطیل توسط موتور کیو ام ال متصل. موتور ساطع می کند این سیگنال زمانی که شی مستطیل ایجاد شده است, در نتیجه تحریک مولفه.کنترل کننده سیگنال تکمیل شده.
کنترل کننده های سیگنال پیوست شده اجازه می دهد تا اشیا از سیگنال های خاصی مطلع شوند که برای هر شی قابل توجه است. اگر هیچ مولفه ای وجود نداشت.تکمیل کنترل سیگنال متصل, مثلا, یک شی می تواند این اطلاع رسانی بدون ثبت نام برای برخی از سیگنال های خاص از برخی از شی خاص دریافت نمی. مکانیزم کنترل کننده سیگنال متصل اشیا را قادر می سازد سیگنال های خاصی را بدون کد اضافی دریافت کنند.
برای اطلاعات بیشتر در مورد کنترل کننده های سیگنال پیوست شده به خصوصیات پیوست شده و کنترل کننده های سیگنال پیوست شده مراجعه کنید.
اضافه کردن سیگنال به انواع سفارشی کیو ام ال
سیگنال را می توان به انواع سفارشی کیو ام ال از طریق کلید واژه سیگنال اضافه شده است.
نحو برای تعریف یک سیگنال جدید است:
یک سیگنال با فراخوانی سیگنال به عنوان یک روش ساطع می شود.
به عنوان مثال کد زیر در فایلی با نام تعریف شده است دکمه مربع.کیو ام ال . شی مستطیل ریشه دارای یک سیگنال فعال, که ساطع می شود هر زمان که تافندلر کودک شنود گذاشته است . در این مثال خاص سیگنال فعال شده با ساطع می شود ایکس و بله مختصات کلیک ماوس:
اکنون هر شی از دکمه مربع می تواند با استفاده از یک کنترل کننده سیگنال غیرفعال به سیگنال فعال شده متصل شود:
برای اطلاعات بیشتر در مورد نوشتن سیگنال برای انواع سفارشی کیو ام ال به ویژگی های سیگنال مراجعه کنید.
اتصال سیگنال ها به روش ها و سیگنال ها
اجسام سیگنال یک اتصال () روش به یک اتصال یک سیگنال یا به یک روش یا سیگنال دیگر. هنگامی که یک سیگنال به یک روش متصل, روش به طور خودکار استناد هر زمان که سیگنال ساطع می شود. این مکانیزم را قادر می سازد یک سیگنال به یک روش به جای یک کنترل کننده سیگنال دریافت می شود.
در زیر پیام رسان سیگنال دریافت شده با استفاده از روش اتصال() به سه روش متصل می شود:
در بسیاری از موارد دریافت سیگنال از طریق کنترل کننده سیگنال به جای استفاده از عملکرد اتصال() کافی است. با این حال, با استفاده از روش اتصال اجازه می دهد تا یک سیگنال به روش های متعدد دریافت می شود همانطور که قبلا نشان داده شده, که ممکن نخواهد بود با گرداننده سیگنال به عنوان باید منحصر به فرد به نام. همچنین روش اتصال هنگام اتصال سیگنال ها به اشیا ایجاد شده به صورت پویا مفید است.
است قطع مربوطه وجود دارد() روش برای از بین بردن سیگنال های متصل:
سیگنال به سیگنال اتصال
با اتصال سیگنال به سیگنال های دیگر, روش اتصال() می توانید زنجیره سیگنال های مختلف را تشکیل می دهند.
هر زمان که سیگنال شنود گذاشته تافندلر ساطع می شود, سیگنال ارسال به طور خودکار منتشر می شود و همچنین.
© 2022 کوارت شرکت گیم. مشارکت اسناد و مدارک شامل در اینجا کپی رایت صاحبان مربوطه می باشند. مستندات مندرج در اینجا تحت شرایط مجوز اسناد گنو رایگان نسخه 1.3 که توسط بنیاد نرم افزار رایگان منتشر شده است مجاز است. کیوت و لوگو مربوطه علامت های تجاری از کوارت شرکت گیم هستند. در فنلاند و / یا کشورهای دیگر در سراسر جهان. همه علامت های تجاری دیگر اموال صاحبان مربوطه می باشند.