Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Заливка символа (объекта) (http://www.flasher.ru/forum/showthread.php?t=176592)

instead 14.03.2012 04:37

Заливка символа (объекта)
 
Здравствуйте!
Собственно, описанная тут проблема возникла и у меня.

У меня есть двумерный массив экземпляров МувиКлипа (напр field). Нужно програмно изменять цвет заливки, не трогая контур (обводку).

Я посидел поразбирался. Создал в МувиКлипе field два МувиКлипа fieldBG и fieldBORDER, которые, соответственно, содержат саму заливку и контур.

Получается, в моей реализации, я программно создаю 2 двумерных массива, и мой объем моих методов увеличился, потому что теперь каждый массив нужно обрабатывать.

Ребята, я новичок в AS, подскажите как мне правильней разрешить проблему?
Можно ли не создавать два массива, а как-то обратиться через field к его fieldBG, ведь он вроде как дочерний МувиКлип field-а?

Вобщем, объясните, пожалуйста, подробнее реализацию вопроса из вышеприведенной ссылки...

ChuwY 14.03.2012 05:31

Вам нужен только один массив (лучше даже вектор) с мувиклипами типа field.
Задаете нужному элементу (в вашем случае это заливка) instance name.
Вот так:
http://www.flasher.ru/forum/attachme...1&d=1331684705
(контур преобразовывать во что-то не обязательно)
А потом проходим по массиву и получаем fieldBG с помощью метода getChildByName.

Например, так:

Код AS3:

const COLOR : uint = 0XFF00FF;// ваш цвет
var fields : Vector.<MovieClip> = ... // получаете ваши клипы
var numFields : uint = fields.length;
while(numFields--){
  var fields : MovieClip = fields[numFields];
  var fieldBg : DisplayObject = field.getChildByName("fieldBG");
  // а потом уже меняем цвет
  var colorTransform : ColorTransform = new ColorTansform();
  colorTransform.color = COLOR;
  fieldBg.transform.colorTransform = colorTransform;
}


instead 14.03.2012 06:11

Вложений: 1
Жаль картинка ваша не работает, но все равно большое спасибо!
Вроде получилось:)

Попрошу пока что не удалять тему, а то вопросы есть в голове но выразить пока не могу :)


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

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