خانه » ادوبی فلش » فراخوانی تابع JavaScript در اکشن اسکریپت ۳

فراخوانی تابع JavaScript در اکشن اسکریپت ۳

برای این مورد از بسته کلاس ExternalInterface استفاده می شود

در نتیجه ابتدا می بایست این کلاس را وارد نماییم

import flash.external.ExternalInterface;
 

مرحله بعد که ما با استفاده از متد call به فراخوانی تابع جاوا اسکریپت خود می پردازیم (این تابع قبلا در صفحه ای که ما فلش را در آن قرار می دهیم توسط کد جاوا اسکریپت تعریف شده است)

ExternalInterface.call("your_function()");

توسط کد بالا تابع your_function اجرا می شود

حال در صورتی که تابع شما آرگمان های ورودی نیز دارد به صورت زیر عمل می کنید:

var retval:int = ExternalInterface.call("my_function()"
,"first-argument");

شما می توانید بازگشتی از عملکرد ExternalInterface را دریافت نمایید در مثال بالا retval مقداری عددی از عملکرد کد مربوطه می باشد

Print Friendly
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

8 نظر

  1. سلام من یک برنامه برای طراحی یک درخت (البته فارسی) نوشتم ولی چون پیچیده شده می خواستم آن را به صورت یک کامپوننت در بیاورم تا استفاده از آن راحتر باشد می توانید طرز نوشتن کامپوننت ها در فلش را توضیح دهید.ممنون

    • سلام خدمت هاجر عزیز

      این کار خیلی ساده می باشد البته زیره کاری هم داره
      به صورت خلاصه : پروژه شما می بایست یک MovieClip اصلی داشته باشد که در کتابخانه library فلش روی آن راست کلیک می کنید و سپس گزینه Component Definition کلیک می کنید و گزینه های مقدار دهی کاربر و نوع و Variable را تعیین می کنید این Variable مقداری است که شما درون آن MovieClip مقدار می دهید
      مثلا اگر Variable موردی را xpos معرفی کنید و درون مووی کلیک خود trace(xpos) را قرار دهید می بایست مقداری که کاربر در بخش مربوطه به xpos وارد می کند را در output مشاهده نمایید

      موفق و پیروز باشید

  2. با سلام. ممنون از مطلب خیلی خوبتون
    من برای کارم باید لیست فونت ها رو با فلش بگیرم و بفرستم به تابع جاوااسکریپت و چاپ کنم. برای این کار من کد xml زیر رو با استفاده از برنامه flash Builder تبدیل به swf کردم و به صورت زیر عمل کردم ولی جوابی نگرفتم و اصلا تابع فراخوانی نمیشود چون برای تست اینکه تابع اصلا فراخوانی میشود یا نه alert قرار دادم. میشه لطف کنید و بهم کمک کنید. خیلی ممنون میشم. با تشکر

    کد HTML :

    function getFlash(arr)
    {
    var fontList = “”;
    for(var index in arr)
    {
    fontList += arr[index];
    }
    document.write(fontList);
    }

    • شما بخشی از کار را دارید اشتباه انجام می دهید
      دقت کنید کد جاوااسکریپت را درون پروژه FlashBulder قرار ندهید و درون فایل نمایش دهنده HTML خود و در تگ SCRIPT قرار دهید
      لطفا از بخش ارتباط با ما یا بخشی دیگر ، فایل مورد نظر خود را هم پیوست کرده و یا در بخش نظرات لینک فایل مربوطه را قرار دهید
      موفق و پیروز باشید

  3. سلام دوست عزیز من میخواستم بدونم بدون استفاده از مرورگر وب امکان اجرای کدهای جاوااسکریپت نیست؟
    سوال بعدی هم من یک پروژه فلش ساختم کدها رو درونش قرار دادم و بعد یک تابع ساده نوشتم و سعی کردم از داخل فلش صداش بزنم به نظر شما چرا نتونستم این کار رو بکنم؟

    • سلام و عرض ادب

      در کل جاوا اسکریپت در ابتدا برای مرورگرها بوده است ولی راه های برای این کار وجود دارد برنامه هایی هست که برنامه نوشته شده شما را با جاوا اسکریپت به صورت اجرایی exe در می آورند یا استفاده از تکنولوژی ادوبی ایر که روی دریم ویور وجود دارد می توانید برنامه مالتی پلتفرم با الگوی وب ایجاد کنید که روی سیستم ها نصب شوند

      احتمالا مشکل از کدهای html و جاوا اسکریپتی که استفاده کردید بوده است برای امکان راهنمای بهتر می توانید کد یا نمونه پروژه خود را ارسال کنید تا بررسی کنم

      موفق و پیروز باشید

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

    • سلام و عرض ادب

      اگر منظور شما برای داخل فلش هست شما می توانید از Timer یا Interval استفاده کنید و در تابع مربوطه به صفحه مورد نظر انتقال داشته باشید
      و اگر منظور شما مرورگر هست باز هم در تابع مربوطه به رویداد تعریف شده می بایست دستور NavigateTo را استفاده کنید، فقط یک موردی برای این موضوع وجود دارد و این که مروگرهای جدید اگر باز شدن لینک یا انتقال به صفحه بدون وجود رویداد کلیک باشد آن را به عنوان پاپ آپ در نظر می گیرند حال شما چه این انتقال را در جاوا اسکریپت تعریف کرده باشید و چه در فلش. ولی اگر این مورد مهم نباشد راهکار همین هست
      برای این که در صفحه جدید باز نشود نیز باید پارامتر دوم مربوطه _self مقدار دهی شود تا به صفحه جاری در مرورگر اشاره کند و همان طور که می دانید _blank برای باز شدن در صفحه یا همان تب جدید می باشد

      در بخش مقالات برای لینک و تایمر و… مقالات مرتبطی وجود دارد که می توانید استفاده کنید

      موفق و پیروز باشید

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه