استفاده از افکت های Pixel Bender Toolkit در AS3

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

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

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    503
    امتیاز دستاورد:
    16
    1- ابتدا فایل twirl.zip را دانلود کنید و آنرا extract کنید. این فایل حاوی یک فیلتر Pixel Bender Toolkit با پسوند pbk است.
    ۲- برنامه Adobe Pixel Bender Toolkit را اجرا کنید و از منوی File گزینه Load Image 1 را انتخاب کنید و یک فایل عکس را باز کنید.
    ۳- دوباره منوی File را باز کنید و روی منوی Open Filter کلیک کنید و فایل twirl.pbk را که دانلود کردید انتخاب کنید.
    ۴- در پایین نرم افزار گزینه Flash را انتخاب کنید و روی Build and Run کلیک کنید.


    [​IMG]


    ۵- حالا در پنل سمت راست برنامه تنظیمات در دسترس این فیلتر قابل مشاهده هستند که می توان از آنها در برنامه Flash استفاده کرد.


    [​IMG]


    ۶- در ادامه از منوی File گزینه Export Filter for Flash Player را انتخاب کنید و این فیلتر را با فرمت pbj ذخیره کنید.
    ۷- نرم افزار Flash را اجرا کنید و یک پروژه Action Script 3.0 ایجاد کنید، پروژه را در کنار فایل pbj ذخیره کنید.
    ۸- یک عکس داخل پروژه import کنید و آن را به MovieClip تبدیل کرده و نام آن را برای مثال img_mc بگذارید.
    ۹- فریم اول را انتخاب کنید و پنل Actions را اجرا کنید.
    ۱۰- کلاسه های مورد نیاز را import کنید.


    کد (Text):
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.filters.*;
    11- دو متغیر از نوع URLLoader و Shader ایجاد کنید. از URLLoader برای فراخوانی فایل pbj و از Shader برای تبدیل داده های این فیلتر استفاده می شود تا در Flash قابل استفاده باشد.


    کد (Text):
    var filter_loader:URLLoader = new URLLoader();
    var shader:Shader;
    12- برای فراخوانی فایل pbj از فرمت Binary در URLLoader استفاده کنید.


    کد (Text):
    filter_loader.dataFormat = URLLoaderDataFormat.BINARY;
    filter_loader.addEventListener(Event.COMPLETE,onFilterLoadComplete);
    filter_loader.load(new URLRequest(“twirl.pbj”));
    13- حالا تابع onFilterLoadComplete را که بعد از کامل شدن فراخوانی فایل pbj اجرا می شود، به صورت زیر تعریف کنید.


    کد (Text):
    function onFilterLoadComplete(evt:Event):void {
    var loader:URLLoader = evt.target as URLLoader;
    shader = new Shader(loader.data);
    shader.data.radius.value = [50];
    var filter:ShaderFilter = new ShaderFilter(shader);
    img_mc.cacheAsBitmap = true;
    img_mc.filters = [filter];
    }
    در این تابع:

    • اطلاعات URLLoader وارد Shader می شود تا عملیات تبدیل صورت بگیرد.
    • با توجه به تنظیمات در دسترس فیلتر که در برنامه Pixel Bender Toolkit قابل مشاهده بود مقدار radius به عنوان مثال ۵۰ در نظر گرفته شده است.
    • اطلاعات Shader در متغیر ShaderFilter قرار گرفته اند تا بتوان از آن برای MovieClip استفاده کرد.
    • مقدار cacheAsBitmap برای MovieClip مورد نظر true شده است.
    • درنهایت فیلتر ShaderFilter به MovieClip معرفی شده است.
    http://flashcenter.ir/?p=345
     
    نوشته شده توسط yaa110 در ‏22 می 2011
    mrzzrm، bitaroos، khoushechin1 و 4 نفر دیگر از این ارسال تشکر کرده اند.

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