خانه » مالتی مدیا » ادوبی فلش » کلاس‌های Dynamic در اکشن اسکریپت ۳

کلاس‌های Dynamic در اکشن اسکریپت ۳

کلاس‌های Dynamic در اکشن اسکریپت ۳

ویژگی پویایی، از جمله امکاناتی است که در گذشته در زبان اکشن اسکریپت وجود نداشت، اما از نسخه ۳ و FP9 به آن اضافه شد.

تنها تفاوت یک کلاس پویا، با کلاس غیر پویا در این است که کلاس پویا می‌تواند در زمان اجرا، صفات جدیدی را بپذیرد. در واقع به سادگی مقدار دهی به یک متغیر، می‌توان یک صفت جدید (property یا function یا حتی object) را به اشیائی که از یک کلاس پویا ایجاد شده‌اند اضافه نمود.

این تفاوت کوچک در عمل، کار و تعامل با کلاس‌های پویا را تا حد زیادی ساده می‌کند. از آنجا که شئ‌گرایی در AS 3.0 حد و مرز ندارد، در حین طراحی یک برنامه واقعی به دفعات اتفاق می‌افتد که بخواهیم صفات جدیدی را در زمان اجرا و تحت شرایطی خاص، به یک شئ اضافه نموده و یا از آن به عنوان یک حامل یا ظرف (Container) استفاده کنیم.

تعریف کلاس پویا:

package {
public dynamic class TestClass {
//defenition
}
}

اضافه کردن صفت در زمان اجرا:

var dynaObject: TestClass = new TestClass();

var obj:Object = new Object();
var idx:Array = new Array(1,2,3,4,5,6,7,8,9);

dynaObject.propTest = "newProperty";
dynaObject.obj = obj;
dynaObject["idx"] = idx;

trace(dynaObject.propTest, dynaObject.obj, dynaObject.idx);
//newProperty [object Object] 1,2,3,4,5,6,7,8,9

در استفاده از کلاس‌های پویا این دو نکته را به خاطر داشته باشید که:

– صفات پویا به instance اضافه می‌شوند نه خود کلاس.

– ویژگی پویایی در کلاس‌ها به ارث برده نمی‌شود.

توضیح: مقصود از “صفت” در AS 3.0، هم property و هم function یا method است.

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

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

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

12 نظر

  1. سلام اقا بهروز

    من واسه طراحی بنر یه مشکلی دارم
    میشه منو کمک کنید

    مرسی

    • سلام دوست گرامی
      پاسخ سوالات فقط از همین بخش داده می شود
      لطفا سوال خود را همینجا مطرح کنید و تیک مربوطه به دریافت جواب را نیز بزنید تا جواب به صورت خودکار به ایمیل شما ارسال شود
      موفق و پیروز باشید

  2. سلام بهروز جان
    ویژگی پویایی در کلاس‌ها به ارث برده نمی‌شود.
    منظورتون با extendکردن یه کلاس به کلاس پویاست ؟
    برای dynamicکردن document classباید چیکار کرد ؟

  3. با سلام
    من در اسکریپت ۳ کار میکنم و برای فایلی یک کلاس تعریف کردم و درآن فایل میخواهم در تایم لاین کدی اضافه کنم ولی خطا میدهد که addframe script
    میشه کمکم کنید

  4. با سلام
    من در یک مقاله که مال خود adobe است خوندم دو راه برای تعریف توابع شخصی وجود داره : استفاده از function statement و
    یا استفاده از function expression . تفاوت این دو روش چیه؟اگه ممکنه یه کم توضیح بدید.
    خیلی ممنون

  5. باسلام وخسته نباشید
    باچه کدی میشه یه فایل exe رو تواسکریپت ۳ فراخوانی کرد؟
    باتشکر

    • سلام کاربر گرامی
      فقط برای حالتی این امکان وجود دارد که فایل نهایی فلش شما پروژکت یا همان exe باشد
      و می بایست از روش پوشه fscommand استفاده کنید
      راه بهتر استفاده از نرم افزارهای کاربری مثل MDM Zinc ، mProjector و… برای این کار می باشد
      موفق و پیروز باشید

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

    • سلام
      آدرس دهی مطلق انجام ندهید و به صورت نسبی آدرس دهی کنید
      مثلا برای آدرس دادن نام درایو و پوشه مروبطه را وارد نکید (c://test.mp3)
      به جای این کار فایل را کنار فایل اصلی و یا در پوشه ای در کنار آن قرار دهید و آدرس را نسبت به فایل اصلی انجام دهید ، مثلا اگر فایل شما کنار فایل فلش شماست تنها کافیست نام آن را وارد نمایید (test.mp3) یا اگر در پوشه در کنار فایل شماست (test/test.mp3) …
      موفق و پیروز باشید

ارسال جواب

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

*

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