کپی کردن اشیاء با استفاده از ByteArray در ActionScript 3

شئ ByteArray یکی از مهمترین و پر کاربردترین اشیائی است که از زمان FlashPlayer 9 به ActionScript 3 اضافه شده است.
این شئ به منظور دسترسی به بایتهای تشکیل دهنده داده‌ها و اشیاء ارائه شده و برای برنامه‌نویسان حرفه‌ای، حکم یک چاقوی جیبی را دارد.
یکی از امکانات ByteArray، دستورات متعدد آن برای خواندن و نوشتن اشیائی مانند Int، Float، MultiByte، Boolean و Object است. قالب داده‌های ByteArray از فرمت AMF تبعیت کرده و امکان نوشتن اشیاء متعدد نیز در امتداد یکدیگر وجود دارد.
به عنوان مثال، ابتدا دو شئ XML تعریف نموده و به آنها مقدار می‌دهیم:
import flash.utils.ByteArray;

var mySignXml:XML = new XML("1AFC8DBD01B13");
var myPeXml:XML = new XML("440006");

trace(mySignXml, '\n', myPeXml);

/* OUTPUT:

  1AFC8DBD01B13


  44000
  6

*/

اشیاء را پشت سر هم در ByteArray کپی می‌کنیم:

var ba:ByteArray = new ByteArray();

ba.writeObject(mySignXml);
ba.writeObject(myPeXml);

اشیاء جدیدی تعریف نموده و به همان ترتیبی که XML ها را در ByteArray نوشته بودیم، از آن می‌خوانیم:

var myCopy1, myCopy2:XML;

ba.position = 0;
myCopy1 = ba.readObject();
myCopy2 = ba.readObject();

trace(myCopy2, '\n', myCopy1);

/* OUTPUT

  44000
  6


  1AFC8DBD01B13

*/

About محمد شمس

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

4 Comments

  1. چه جالب!
    من برام سوال بود چرا وقتی فایل‌های باینری رو با دستور readUTFBytes می‌خونی همه‌شو بهت نمی‌ده و یه بخشی رو بهت پس می‌ده تا باز دوباره همین دستورو فراخوانی کنی؛ الان جوابشا گرفتم!
    حالا، نوشتن اطلاعات توی ByteArray مزیتی هم داره؟

  2. استفاده از ByteArray به عنوان واسطه انتقال داده‌ها مزیتهای بسیار زیادی دارد از جمله اینکه با دسترسی به بایتهای داده‌ها، امکان رمزنگاری، فشرده‌سازی و بسته‌بندی داده‌ها فراهم می‌شود.
    در اصطلاح به چنین ابزارهای پر کاربرد و همه کاره‌ای، Swiss army knife یا همان چاقوی جیبی گفته می‌شود.

    حتما در مورد کاربردهای متعدد ByteArray مطالبی خواهم نوشت.

  3. با سلام
    از آموزش های مختصر و مفیدتون استفاده کردیم
    خواستم بپرسم آیا با استفاده از بایت آرایه می توان اشیائی مثل مووی کلیپ یا سپرایت رو کپی کرد

پاسخ دهید

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


5 × = 45