با توجه به مطلب قبلی که در مورد ارتباط فلش با جاوااسکریپت و فراخوانی توابع جاوا اسکریپت با اکشن اسکریپت ۳ بود
شاید این موضوع که آیا امکان برقرای ارتباط به صورت معکوس این قضیه یعنی ایجاد ارتباط از جاوااسکریپت به فلش وجود دارد یا خیر…
به همین منظور به این ارتباط که به طور مثال شما با کلیک بر روی لینکی که درون صفحه HTML سایت شما هست بتوانید محتوایی درون Text Field فلش که به صورت Dynamic هست رو تغییر بدید ( از این خصوصیت به خلاقیت خودتان می تواند برای فرا خوانی هر تابعی درون فلش نیز استفاده کنید)
ادامه مطلب »
برای این مورد از بسته کلاس ExternalInterface استفاده می شود
در نتیجه ابتدا می بایست این کلاس را وارد نماییم
import flash.external.ExternalInterface;
مرحله بعد که ما با استفاده از متد call به فراخوانی تابع جاوا اسکریپت خود می پردازیم (این تابع قبلا در صفحه ای که ما فلش را در آن قرار می دهیم توسط کد جاوا اسکریپت تعریف شده است)
ExternalInterface.call("your_function()");
توسط کد بالا تابع your_function اجرا می شود
حال در صورتی که تابع شما آرگمان های ورودی نیز دارد به صورت زیر عمل می کنید:
var retval:int = ExternalInterface.call("my_function()"
,"first-argument");
شما می توانید بازگشتی از عملکرد ExternalInterface را دریافت نمایید در مثال بالا retval مقداری عددی از عملکرد کد مربوطه می باشد
سلام دوستان عزیز ، پیرو آموزش های کوتاه و کاربردی که چندی پیش شروع کردم این بار به موضوعی در جاوااسکریپت می پردازیم ، امکان دارد که برای شما پیش آمده باشد که نیاز داشته باشید یک Object را بهObject دیگر پیوند بزنید ، چه راه حلی به ذهنتان رسیده ؟ فرض بر این هست که یکی یا هر دو Object های ما در مسیر برنامه می بایست چندین بار مقدار دهی و پیوند زده بشود ، پس عملا روش ایجاد Object برای هر بار استفاده برای ما مقدور نیست …
چند راه حل برای این کار وجود دارد که روش اول استفاده ساده از یک حلقه for می باشد که در زیر کد مربوطه را مشاهده می کنید :
var a = { 'foo': 'bar', 'baz': 'bat' };
var b = { 'foo': 'quux' };
for (prop in a) {
if (prop in b) { continue; }
b[prop] = a[prop];
}
در کد بالا ما ابتدا Object با نام a را پیمایش می کنیم و در صورتی که خصوصیت جدید در b وجود نداشته باشد (که توسط شرط در کد تست می شود) خصوصیت a به b افزوده می شود.
به همین سادگی ، البته برای این کار می توان از روش های دیگری هم استفاده کرد و کار اصولی تری انجام داد که بتوان از آن در تمام مسیر یک پروژه استفاده کرد
یکی از این کارهای استفاده از گسترش برای متد Object می باشد ، ما با تعریف یک Prototype برای Object به نام merge در هر جایی از کد می توانید با فراخوانی این متد از آن بهره ببریم
ادامه مطلب »