Форум 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)
-   -   header at DataGrid (http://www.flasher.ru/forum/showthread.php?t=93501)

sngbiz 22.03.2007 14:58

header at DataGrid
 
как сделать чтоб заливка хедера была не градиентом, а солид?

OracleN 10.04.2007 21:44

Цитата:

Сообщение от sngbiz
как сделать чтоб заливка хедера была не градиентом, а солид?

Это рендер тебе надо писать, но это не так уж и просто, бо там и сортировка отображается и т.д.

etc 10.04.2007 21:45

В заголовках рендерер вроде бы не пользуется (не смотрел, лень и не буду). А настроить градиент можно.

OracleN 10.04.2007 21:49

Цитата:

Сообщение от __etc
В заголовках рендерер вроде бы не пользуется (не смотрел, лень и не буду). А настроить градиент можно.

Плиз, скажи как настроить градиент, я же чего про рендеры взялся, такая же задача. Бо искал везде, только нашел как через рендре, но там свой гемор

etc 10.04.2007 21:54

http://livedocs.macromedia.com/flash.../00003255.html

Кажется там можно указать массив из двух элементов с цветом (в headerColor), чтобы поменять оба цвета градиента.

OracleN 10.04.2007 22:01

Не нефига, пишу

Код:

var tmp = new Array(0xFF0000,0xFF0000);
mainGrid.setStyle('headerColor',tmp);

не воспринимает он массив, только если цвет прописать, но тогда будет градиент, т..е только один цвет указываешь.

etc 10.04.2007 22:06

Заглянул в код DataGrid, увидел, что в drawHeaderBG используется только один цвет. Вариантов немного, только хак. Т.е. я могу написать код для изменения градиента, если это нужно.

Задавать цвета градиентов можно было во Flex, но он тут не при делах, ясное дело.

OracleN 10.04.2007 22:09

А вообще долго писать это, или может подскажишь как самому написать, или примерчик небольшой. бо очень сильно надо.

etc 10.04.2007 22:19

Ну вот хак:

Код:

my_dg.columnNames = ['a', 'b'];
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
changeDrawHeaderBGHandler = function (grid) {
    grid.drawHeaderBG = function() {
          var mc = this.header_mc;
          mc.clear();
          var o = this.__viewMetrics;
          var tot = Math.max(this.totalWidth, this.displayWidth+3);
          mc.moveTo(o.left, o.top);
          var matrix:Object = {matrixType:"box", x:0, y:0, w:tot, h:this.__headerHeight+1, r:Math.PI/2};
          var colors:Array = [0xFFCC00, 0xFF0000, 0xffffff];
          var ratios:Array = [0, 60, 255];
          var alphas:Array = [100, 100, 100];
          mc.beginGradientFill("linear", colors, alphas, ratios, matrix);
          mc.lineStyle(0, 0x000000, 0);
          mc.lineTo(tot, o.top);
          mc.lineTo(tot, this.__headerHeight+1);
          mc.lineStyle(0, 0x000000, 100);
          mc.lineTo(o.left, this.__headerHeight+1);
          mc.lineStyle(0, 0x000000, 0);
          mc.endFill();
    };
};
changeDrawHeaderBGHandler(my_dg);
my_dg.redraw();

В внутри функции можно задать нужные цвета и вообще переписать отрисовку фона у хедера
my_dg — DataGrid.

OracleN 11.04.2007 00:30

Цитата:

Сообщение от __etc
Ну вот хак:

Код:

my_dg.columnNames = ['a', 'b'];
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
changeDrawHeaderBGHandler = function (grid) {
    grid.drawHeaderBG = function() {
          var mc = this.header_mc;
          mc.clear();
          var o = this.__viewMetrics;
          var tot = Math.max(this.totalWidth, this.displayWidth+3);
          mc.moveTo(o.left, o.top);
          var matrix:Object = {matrixType:"box", x:0, y:0, w:tot, h:this.__headerHeight+1, r:Math.PI/2};
          var colors:Array = [0xFFCC00, 0xFF0000, 0xffffff];
          var ratios:Array = [0, 60, 255];
          var alphas:Array = [100, 100, 100];
          mc.beginGradientFill("linear", colors, alphas, ratios, matrix);
          mc.lineStyle(0, 0x000000, 0);
          mc.lineTo(tot, o.top);
          mc.lineTo(tot, this.__headerHeight+1);
          mc.lineStyle(0, 0x000000, 100);
          mc.lineTo(o.left, this.__headerHeight+1);
          mc.lineStyle(0, 0x000000, 0);
          mc.endFill();
    };
};
changeDrawHeaderBGHandler(my_dg);
my_dg.redraw();

В внутри функции можно задать нужные цвета и вообще переписать отрисовку фона у хедера
my_dg — DataGrid.

Гениально, даже очень гениально. Спасибо большое.

etc 11.04.2007 01:45

Гениально было бы не ломая компоненты. А так — обычный хак.


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

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