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

ارتباط پویا بین JavaScript و اکشن اسکریپت ۳

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

شاید این موضوع  که آیا امکان برقرای ارتباط به صورت معکوس این قضیه یعنی ایجاد ارتباط از جاوااسکریپت به فلش وجود دارد یا خیر…
به همین منظور به این ارتباط که به طور مثال شما با کلیک بر روی لینکی که درون صفحه HTML سایت شما هست بتوانید محتوایی درون Text Field فلش که به صورت Dynamic هست رو تغییر بدید ( از این خصوصیت به خلاقیت خودتان می تواند برای فرا خوانی هر تابعی درون فلش نیز استفاده کنید)

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

import flash.external.ExternalInterface;
 

در این مرحله می بایست بازخورد مربوطه را در کلاس ExternalInterfrace ثبت کنیم :

ExternalInterface.addCallback("changeText",changeTheText);
 

خوب همان طور که می بینید متد addCallback دو آرگمان اصلی دارد
changeText : نام تابعی است که ما می بایست درون کد جاوا اسکریپت خود از آن استفاده کنیم
changeTheText : نام تابعی است در فلش که با فراخوانی مورد قبلی در جاوا اسکریپت درون فلش فراخوانی می شود

این تابع را در این مثال مشاهده می کنید :

function changeTheText(t:String):void
{
	txtText.text = t;
}
 

این تابع نیز یک آرگمان دارد که شما می بایست مقدار آن را درون کد جاوا اسکریپت توسط تابع رابط که در این مثال changeText می باشد مقدار دهی نمایید
txtText هم یک فیلد متنی داینامیک در فلش می باشد instance Name آن برابر txtText مقدار دهی شده است
.text هم طبق آموزش های قبلی برای مقدار دهی به فیلد به صورت متنی می باشد

خوب در نهایت کد مربوطه به بخش HTML ما کدی شبیه به کد زیر می باشد :

<p><a href=”#” onClick=”JavascriptPopup.changeText(‘it  works for iflashlord.com!’);”>IFLashLord Click me!</a></p>

نکته مهم » JavascriptPopup چیست ؟ یک نام دلخواه می باشد که شما به عنوان شناسه یا همان id کد تگ Object خود تعریف می کنید و از آن برای اشاره به فلش مورد نظر استفاده می کنید

به کد زیر توجه کنید :

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="224" height="69" align="middle">        <param name="allowScriptAccess" value="always" />       <param value="false" />  <param value="JavascriptPopup.swf" /><param value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="JavascriptPopup.swf" quality="high" bgcolor="#ffffff" width="224" height="69" name="JavascriptPopup" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object>

id برابر با JavascriptPopup مقدار دهی شده پس در نتیجه کدHTML قبلی ما اشاره به این فلش در صفحه دارد و شما می توانید بر تعداد زیاد فلش در یک صفحه نیز کنترل داشته باشید
توجه داشته باشید از هر نوع روش برای قرار دادن فلش در صفحه استفاده می کنید می بایست خصوصیت id را مقدار دهی نمایید تا بتوانید در کد خود به فلش مورد نظر اشاره کنید.

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

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

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

9 نظر

  1. سلام
    کاشکی نمونه هم میگزاشتین!!

  2. اگه امکان داره دانلود نرم افزارجاوا اسکریپت را هم در سایت قرار بدید باتشکر

    • سلام ، جاوا اسکریپت نرم افزار ندارد و بر روی تمامی مرورگر های وب در اختیار کاربر می باشد.
      فکر می کنم منظور شما برنامه جاوا هست که می توانید با جستجو در گوگل لینک دانلود آن را بیابید (البته به این مطلب مربوط نمی باشد)

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

  3. با سلام من از این روش استفاده کردم اما نه در جاوا اسکریپت بلکه در سی شارپ در اکشن اسکریپت دو بدون مشکل جواب میده اما همون کدها رو برای اکشن اسکریپت ۳ به کار میگیرم خطا در برنامه سی شارپ من تولید میشه لطفا راهنمایی کنید چه باید کرد

    • سلام
      اصول و قوائد اکشن اسکریپت ۳ تغییر کرده و باید از آنها پیروی کنید
      ولی برخی از کدها تغییری نداشته اند یا تغییر کوچکی داشته اند
      در بخش پابلیش سیتینگ دقت کنید ورژن اکشن اسکریپت برای کامپایل را متناسب با کدهایتان قرار دهید
      موفق و پیروز باشید

  4. سلام
    میشه در مورد websocket و همچنین ی سمپل آماده ازش هم ی مطلب بزارین؟
    خیلی بهش نیاز دارم واسه ساخت ی بازی آنلاین

ارسال جواب

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

*

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