Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Цвет клипа (http://www.flasher.ru/forum/showthread.php?t=114407)

Kroli4eg 28.07.2008 17:09

Цвет клипа
 
Доброго времени суток. Есть ли возможность задавать цвет клипа таким образом чтоб можно было менять цвет подклипов(визуально). Т.е. есть клипы mc_main, mc_main.mc1, mc_main.mc2. Задаю основному клипу цвет:
Код:

var color:Color=new Color(mc_main);
  color.setRGB(0xe5b948);

А когда хочу поменять цвет mc1 или mc2. Цвет им задается но визуально клипы остаются цвета mc_main. Как быть?

kutuzov 28.07.2008 17:29

как вариант, занести все mc1 mc2 в массив, затем рекурсивно задать им изначальный цвет, а после можно уже выборочно менять цвет на другой

iNils 28.07.2008 17:30

Код:

var mc:MovieClip = this.createEmptyMovieClip ("mc", 0);
var mcL:MovieClip = mc.createEmptyMovieClip ("mcL", 0);
var mcR:MovieClip = mc.createEmptyMovieClip ("mcR", 1);
var mcC:MovieClip = mc.createEmptyMovieClip ("mcC", 2);
mc._x = 200;
mc._y = 100;
mcL.lineStyle (10);
mcR.lineStyle (10);
mcC.lineStyle (10);
mcL.moveTo (-20, 0);
mcL.lineTo (-20, 100);
mcR.moveTo (20, 0);
mcR.lineTo (20, 100);
mcC.lineTo (0, 100);
/////
var clr:Color = new Color (mc);
var clrL:Color = new Color (mcL);
var clrR:Color = new Color (mcR);
var tf:Object = clr.getTransform ();
var cx:Number = 0;
////
this.onMouseDown = function () {
        cx++;
        var mode:Number = cx % 3;
        switch (mode) {
        case 0 :
                clrL.setTransform (tf);
                clrR.setTransform (tf);
                break;
        case 1 :
                clr.setRGB (0xFF0000);
                break;
        case 2 :
                clr.setTransform (tf);
                clrR.setRGB (0x00FF00);
                clrL.setRGB (0x0000FF);
                break;
        }
};


crazyone 28.07.2008 17:51

Цитата:

А когда хочу поменять цвет mc1 или mc2. Цвет им задается но визуально клипы остаются цвета mc_main. Как быть?
В такой постановке ваша задача не имеет решения. Задавая мувиклипу цвет, вы задаете цвет _всему_ мувиклипу. Со всеми его детьми.
Подозреваю, что вам нужно менять структуру.

AlexDesinger 28.07.2008 18:00

да если у вас клипы вложены и вы применяете колор трансформ к главному, то на вложенные клипы повлиять не получиться, можно только менять вложенные, не троягая главного, либо поменять стрктуру.

Kroli4eg 28.07.2008 19:00

у меня тут идея появилась. А что если менять цвет только вложенных клипов. К примеру по нажатию на кнопку все клипы вложенные в mc_main становятся красными. От сюда вопросс как определить колличество и имена клипов вложенных в mc_main? Т.е. я вижу это в виде цикла, может это можно сделать как то проще?

Все разобрался. Сделал так
Код:

set_color_red = function(clip)
{
 for (var i:String in clip)
 {
        var color:Color=new Color(clip + "." + clip[i]._name);
    color.setRGB(0xFF0000);
 }       
}



Часовой пояс GMT +4, время: 00:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.