کلاس‌های Dynamic در ActionScript 3.0

ویژگی پویایی، از جمله امکاناتی است که در گذشته در زبان اکشن اسکریپت وجود نداشت، اما از نسخه 3 و 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 است.

About محمد شمس

برنامه‌نویس، طراح انیمیشن و علاقمند به هوش مصنوعی

One Comment

  1. مطلب خوبی بود
    استفاده کردیم
    موفق و پیروز باشید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


1 × = 4