ذخیره محتویات MovieClip به صورت عکس

شروع موضوع توسط yaa110 ‏30 آوریل 2011 در انجمن برنامه فلش Flash

کلمات کلیدی:
  1. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    507
    امتیاز دستاورد:
    16
    در این درس نحوه ذخیره محتویات یک MovieClip به صورت عکس با فرمت JPEG در Air آموزش داده می شود. برای این کار با استفاده از کلاسه Adobe Encoder یک ByteArray از محتویات MovieClip می سازیم و در ادامه این ByteArray را با فرمت JPEG ذخیره می کنیم.


    مراحل کار
    ۱- برای شروع فایل corelib.zip را دانلود کرده و آن را Extract کنید.
    ۲- برنامه Flash را اجرا کنید و یک پروژه جدید از نوع Air بسازید.
    ۳- از منوی File گزینه ActionScript Settings را انتخاب کنید.
    ۴- از پنل Library path روی دکمه Add New Path کلیک کنید سپس روی دکمه Browse to SWC file کلیک کنید و فایل corelib.swc را انتخاب کنید.


    [​IMG]


    ۵- روی دکمه OK کلیک کنید تا پنجره ActionScript Settings بسته شود.
    ۶- روی فریم اول کلیک کنید و پنل Actions را باز کنید.
    ۷- کلاسه های مورد نیاز را Import کنید.


    کد (Text):
    import flash.display.BitmapData;
    import com.adobe.images.JPGEncoder;
    import flash.filesystem.File;
    import flash.filesystem.FileMode;
    import flash.filesystem.FileStream;



    8- یک متغیر از نوع BitmapData ایجاد کنید و طول و عرض آن را به اندازه MovieClip در نظر بگیرید و با دستور Draw محتویات MovieClip را به BitmapData منتقل کنید. (به جای my_mc نام MovieClip خود را وارد نمایید)


    کد (Text):
    var bd:BitmapData = new BitmapData(my_mc.width, my_mc.height);
    bd.draw(my_mc);



    9- یک متغیر جدید از نوع JPGEncoder ایجاد کنید. (عدد داخل پرانتز کیفیت فایل خروجی را مشخص می کند و ماکزیمم آن ۱۰۰ می باشد)، در ادامه یک متغیر ByteArray هم بسازید.
    کد (Text):
    [/SIZE][SIZE=2]
    [/SIZE]
    [SIZE=2]var jpgEncoder:JPGEncoder = new JPGEncoder( 100 );
    var byteArray:ByteArray = jpgEncoder.encode( bd );[/SIZE]
    [SIZE=2]

    • به وسیله متغیرJPGEncoder محتویات BitmapData به فرمت JPEG تبدیل می شود و سپس در متغیر ByteArray قرار می گیرد.
    ۱۰- حالا باید یک متغیر از نوع File ایجاد کنید و محل ذخیره سازی تصویر را تعیین کنید. (برای مثال این تصویر در c:/test.jpg ذخیره می شود)، برای به جریان انداختن File باید یک متغیر FileStream هم بسازید.


    کد (Text):
    var file:File = new File();
    file = file.resolvePath(“c:/test.jpg”);
    var stream:FileStream = new FileStream();



    11- به وسیله کدهای زیر مراحل ذخیره سازی را به اتمام برسانید. در این کدها ابتدا File به صورت FileMode.WRITE در پروژه جاری می شود سپس به وسیله دستور writeBytes اطلاعات تبدیل شده ByteArray ذخیره می شود. دستور try و catch هم به منظور نمایش خطاهای احتمالی به کار گرفته شده است.


    کد (Text):
    try {
    stream.open( file , FileMode.WRITE);
    stream.writeBytes(byteArray);
    stream.close();
    } catch (e:Error) {
    trace(“Error: ” + e.message);
    }


     
    نوشته شده توسط yaa110 در ‏30 آوریل 2011
    oopp، alishadmani، smmousazadeh و 3 نفر دیگر از این ارسال تشکر کرده اند.

به اشتراک بگذارید