سوال از بچه های متخصص(تغییر رنگ)

شروع موضوع توسط hgaconnect ‏19 آوریل 2010 در انجمن برنامه فلش Flash

  1. hgaconnect

    hgaconnect New Member

    ارسال‌ها:
    8
    تشکر شده:
    8
    امتیاز دستاورد:
    1
    سلام
    برنامه ای با فلش می خوام درست کنم که رنگ اشیا در محیط رو با کلیک روی آن تغییر بدم( مثلا رنگ قوری)

    در محیط photoshop با استفاده از حالت hue در blending لایه ها این کار رو میشه انجام داد و در فلش در blending لایه ها امکان hue وجود ندارد.

    از دوستان متخصص اکشن نویسی و ... سوال دارم که آیا می شه کاری کرد که در محیط فلش رنگ یک لایه را(مثلا قوری) را به صورت hue تغییر داد(مثلا رنگ قوری رو از سبز به زرد تبدیل کرد.)
     
    نوشته شده توسط hgaconnect در ‏19 آوریل 2010
  2. sharktech

    sharktech کاربر فعال

    ارسال‌ها:
    1,545
    تشکر شده:
    1,324
    امتیاز دستاورد:
    36
    برای این کار شما باید یک شکل وکتوری هم شکل با شی اصلی بکشین و زیر شی اصلی قرار بدین و شفافیت اون شی اصلی رو یکم کم کنید و توسط as رنگ اونو عوض کنید. کدش هم فکر کنم اینطوری بود:

    کد (Text):
    movie_clip.setRGB(0x00ff00);
    البته اگه شی شما از یک رنگ تشکیل شده میتونید مستقیما رنگش رو توسط کد تغییر بدید اما اگه شی شما از چند زنگ تشکیل شده مثل یک کاراکتر اونوقت استفاده از کد خوب نیس چون رنگ کل شی شما رو عوض میکنه.
     
    نوشته شده توسط sharktech در ‏19 آوریل 2010
    smmousazadeh از این پست تشکر کرده است.
  3. smmousazadeh

    smmousazadeh Well-Known Member

    ارسال‌ها:
    687
    تشکر شده:
    477
    امتیاز دستاورد:
    63
    اگه شکل شما چند تیکه است( مثلا میخاید بازی رنگ آمیزی رو درست کنید) میتونید اون رو به چند مووی کلیپ تبدیل کنید و تیکه ها رو طوری کنار هم بزارید که مثل شکل اولیه بشه یا اینکه شکل گرافیکی رو در یک لایه زیر مووی کلیپها تون بزارید و بعدش کد رو به مووی کلیپی بدید که روش کلیک شده
     
    نوشته شده توسط smmousazadeh در ‏19 آوریل 2010
  4. Mr. LonelY

    Mr. LonelY کاربر فعال

    ارسال‌ها:
    876
    تشکر شده:
    1,207
    امتیاز دستاورد:
    93
    در فلش گزینه hue وجود داره!
    شما اول باید شی رو به ب مووی کلیپ تبدیل کنی و از قسمت filters، فیلتر Adjustcolor رو بهش اضافه کنی!
     
    نوشته شده توسط Mr. LonelY در ‏19 آوریل 2010
  5. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    سلام
    اينا رو واسه اکشن 3 مي نويسم .
    دو تا راه داري :
    1- حالت Fill :
    اگه فلش هاي نقاشي و رنگ آميزي رو داده باشي ، رنگو انتخاب مي کني و روي تيکه هاي نقاشي کليک مي کني و اون تيکه رنگ مي شه .
    خوب کافيه در اين مورد بياي و تيکه هاي مساحتي نقاشي رو يا با ابزار فلش بکشي و يا با خط کشي ، اونا رو از هم تفکيک کني (وکتور ) و هر تيکه رو يه يه مووي کليپ تبديل کني و ColorTransform هر تيکه رو تعيين کني :
    2- روش فيلتر adjustment با دستورات اکشن :
    کلا فرض کن MC1 مووي کليپ سمت راستي و MC2 مووي کليپ وسطي و MC3 مووي کليپ سمت چپي هست ، پس :
    PHP:

    import flash.geom.ColorTransform;//ورود کلاس تغيير رنگ ها
    var myElements_array1:Array = [1, 0, 0, 0, 19,
        0, 1, 0, 0, 100,
        0, 0, 1, 0, -43,
        0, 0, 0, 1, 4];//تعيين  آرايه ماتريس جابجايي رنگها
    var myColorMatrix_filter1:ColorMatrixFilter = new ColorMatrixFilter(myElements_array1);
    //ساخت شي تعيين رنگ اول و قرار دادن آرايه ماتريس در آن

    var myElements_array2:Array = [1, 0, 0, 0, 0,
        0, 1, 0, 0, 0,
        0, 0, 1, 0, 0,
        0, 0, 0, 1, 0];//تعيين  آرايه ماتريس جابجايي رنگها دوم
    var myColorMatrix_filter2:ColorMatrixFilter = new ColorMatrixFilter(myElements_array2);
    //ساخت شي تعيين رنگ دوم و قرار دادن آرايه ماتريس در آن
    addEventListener(Event.ENTER_FRAME,ChangeTheColor);//تابع تغيير رنگ ها در شي سمت راست
    MC2.addEventListener(MouseEvent.MOUSE_OVER,OverFunctiom);//تابع اجرايي در حالت لمس شي وسط
    MC2.addEventListener(MouseEvent.MOUSE_OUT,OutFunctiom);//تابع اجرايي در حالت رهايي موس از شي وسط
    //.......................................شي سمت چپ
    MC3.transform.colorTransform = new ColorTransform(1,0,0,1,200,0,25,100);//تغيير رنگ مووي کليپ سمت چپي
    //چهار پارامتر سمت چپ بين 0 و 1 انتخاب شده و فقط براي تعيين  به ترتيب از چپ مربوط به قرمز و سبز و آبي و آلفا هستند .
    //چهار پارامتر سمت راست مربوط به آفست به ترتيب از چپ به راست ، قرمز و سبز و ابي و الفا هستند  و اعداد بين 0 تا 255 را شامل مي شوند .
    //....................................................
    function OverFunctiom(evt:MouseEvent):void//تابع لمس شي وسط
    {
         MC2.filters = [myColorMatrix_filter1];//اختصاص فيلتر اول به شي وسط
    }
    function OutFunctiom(evt:MouseEvent):void//تابع رهايي از لمس شي وسط
    {
         MC2.filters = [];//فيلتر خالي
    }
    function ChangeTheColor(evt:Event):void//تابع اجرايي لحظه لحظه اي براي تغيير رنگ در شي سمت راست
    {
        myElements_array2[0]=Math.floor(Math.random()*2);
        myElements_array2[1]=Math.floor(Math.random()*2);
        myElements_array2[2]=Math.floor(Math.random()*2);
        myElements_array2[3]=Math.floor(Math.random()*2);
        myElements_array2[5]=Math.floor(Math.random()*2);
        myElements_array2[6]=Math.floor(Math.random()*2);
        myElements_array2[7]=Math.floor(Math.random()*2);
        myElements_array2[8]=Math.floor(Math.random()*2);
        myElements_array2[10]=Math.floor(Math.random()*2);
        myElements_array2[11]=Math.floor(Math.random()*2);
        myElements_array2[12]=Math.floor(Math.random()*2);
        myElements_array2[13]=Math.floor(Math.random()*2);
        myElements_array2[15]=Math.floor(Math.random()*2);
        myElements_array2[16]=Math.floor(Math.random()*2);
        myElements_array2[17]=Math.floor(Math.random()*2);
        myElements_array2[18]=Math.floor(Math.random()*2);
        myElements_array2[4]++;
        myElements_array2[9]++;
        myElements_array2[14]++;
        myElements_array2[19]++;
        if(myElements_array2[4] == 100)
        {
            myElements_array2[4] = -100;
            myElements_array2[14] = -100;
            myElements_array2[9] = -100;
            myElements_array2[19] = -100;
        }
        myColorMatrix_filter2.matrix=myElements_array2;
        MC1.filters = [myColorMatrix_filter2];
    }

     
    مثالو دان کن ...
    البته گراديانت هم مي شه تعيين کرد ولي چون حوصله اون از اين بحث خارجه بهتره از سايتاي خارجي و از help فلش کمک بگيري...
    باي...
     

    پیوست ها:

    آخرین ویرایش: ‏19 آوریل 2010
    نوشته شده توسط ++Hadi++ در ‏19 آوریل 2010
    erfan.h، splinter cell، sdm و 4 نفر دیگر از این ارسال تشکر کرده اند.

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