Просмотр полной версии : Flash и таблица
adelante
06.07.2005, 22:34
привет всем.
у меня задание сделать вывод информации в виде таблицы. т.е. это должно приблизительно выглядеть так: тесктовые поля и линии, которые рисуют таблицу.
все заключается в том, что я получаю данные и в зависимости от их кол-ва должно генерироватся соответсвующая таблица. (например 6 переменных, значит таблица 3х3)
все, что пришло умного в голову это создать объект и его дублировать, т.е. перемещать на определенное кол-во пикселей.
если у вас есть что-то более рациональное поделитесь советом плиз.
заранее спасибки.
посмотри компонент DataGrid
там как раз всё так и сделано как ты хол делать сам ...
Как по мне, наиболее рациональный путь - это проделать все c использованием 4 основных функций:
lineStyle
moveTo
lineTo
createTextField
Если захочешь еще и заливать цветами ячейки таблицы, то добавь к списку beginFill и endFill. Текстфилдам кое где надо будет активировать autoSize и multiline.
Как по мне, наиболее рациональный путь - это проделать все c использованием 4 основных функций:
lineStyle
moveTo
lineTo
createTextField
Если захочешь еще и заливать цветами ячейки таблицы, то добавь к списку beginFill и endFill. Текстфилдам кое где надо будет активировать autoSize и multiline.
а если юзать бордюры самих текст филдов??
можно и поюзать... да вот только вертикальные и горизонтальные бордюры ячейки таблицы не всегда одинаково толстые
блин может ворд на флеше сварганишь??)))
может я и дурак но в своё время я таблицы строил с помощью дубликейтмувиклип...
но у меня там всё было основанно на том что таблицы имеют одинаковые грани и инфа в них из хмл загонялась но эт было давно... а и ещё нужно было чтоб при нажатии на ячейку содержимое копировалось в буффер...
понимаю что по тупому но времени было мало...
Ну я тоже так часто делаю... Но только через attachMovie.
Но если таблица - это просто набор линий разной толщины, разноцветных прямоугольников и текстов, то лучше обходиться без лишних мувиклипов.
adelante
07.07.2005, 20:34
Может у кого-то завалялась инфа по DataGrid или рабочий пример ?
Заранее благодарен
F1=>help
без обид.. там всё написанно нормально...
adelante
07.07.2005, 20:44
Видать мне проще сразу спросить.
1. Как записуются данные в формы ?
2. Как записать значения в отдельные ячейки ?
3. Как изменить цвет ряда ?
P.S. Help рулит, но не всегда.
DataGrid.addColumn() Adds a column to the data grid.
DataGrid.addColumnAt() Adds a column to the data grid at a specified location.
DataGrid.addItem() Adds an item to the data grid.
DataGrid.addItemAt() Adds an item to the data grid at a specified location.
DataGrid.editField() Replaces the cell data at a specified location.
DataGrid.getColumnAt() Gets a reference to a column at a specified location.
DataGrid.getColumnIndex() Gets a reference to the DataGridColumn object at the specified
index.
DataGrid.removeAllColumns() Removes all columns from a data grid.
DataGrid.removeColumnAt() Removes a column from a data grid at a specified location.
DataGrid.replaceItemAt() Replaces an item at a specified location with another item.
DataGrid.spaceColumnsEqually() Spaces all columns equally.
также посмотри- Using styles with the DataGrid component
adelante
07.07.2005, 21:53
какую роль выполняет DataProvider ? и DataHolder ? (т.е. связь между DataGrid и DP&DH)
Заранее сенки
Usage
myDataGrid.dataProvider
Description
Property; the data model for items viewed in a DataGrid component.
DataGrid component (Flash Professional only) 269
The data grid adds methods to the prototype of the Array class so that each Array object conforms
to the DataProvider API (see DataProvider.as in the Classes/mx/controls/listclasses folder). Any
array that is in the same frame or screen as a data grid automatically has all the methods
(addItem(), getItemAt(), and so on) needed for it to be the data model of a data grid, and can
be used to broadcast data model changes to multiple components.
In a DataGrid component, you specify fields for display in the DataGrid.columnNames property.
If you don’t define the column set (by setting the DataGrid.columnNames property or by calling
DataGrid.addColumn()) for the data grid before the DataGrid.dataProvider property has
been set, the data grid generates columns for each field in the data provider’s first item, once that
item arrives.
Any object that implements the DataProvider API can be used as a data provider for a data grid
(including Flash Remoting recordsets, data sets, and arrays).
Use a grid’s data provider to communicate with the data in the grid because the data provider
remains consistent, regardless of scroll position.
Example
The following example creates an array to be used as a data provider and assigns it directly to the
dataProvider property:
grid.dataProvider = [{name:"Chris", price:"Priceless"}, {name:"Nigel",
price:"cheap"}];
The following example creates a new Array object that is decorated with the DataProvider API. It
uses a for loop to add 20 items to the grid:
myDP = new Array();
for (var i=0; i<20; i++)
myDP.addItem({name:"Nivesh", price:"Priceless"});
list.dataProvider = myDP
даа...
аля иниверсальный поиск по пдф файлу с использованием терминального доступа...)))
скачай хелп с сайта макромедии.. там всё прекрасно расписанно и юзать удобно...
adelante
07.07.2005, 22:05
ну ты гонишь ! ж)
но всеравно сенки.
P.s. уже разобрался по хелпу.
adelante
08.07.2005, 23:48
Может кто-то знает в чем бок ?
-------------------------------------------------------
myDP = new Array();
for (var i=0; i<20; i++)
myDP.addItem({name:"Nivesh"+i, price:"Priceless"});
list.dataProvider = myDP
-------------------------------------------------------
ass=list.dataProvider.getItemAt(1).label <----не работает
trace(ass) <---undefined
Заранее сенкс.
тебе же вроде нада сделать таблицу те по сути в датагрид пихануть массив не так??
adelante
09.07.2005, 21:47
слушай, ты решил себе набить количество постов ? или ты просто флудишь ?. если не знаешь, то не нужно задавать такие вопросы.
K.A.T.A.F.A.L.K.E.R
10.07.2005, 13:25
Может, я не прав, но...
myDP.addItem({name:"Nivesh"+i, price:"Priceless"});
- засунул ты объект с параметрами name и price
ass=list.dataProvider.getItemAt(1).label - кто такой label??? Там же только name и price есть? Или это для примера как переменная? :) :D
K.A.T.A.F.A.L.K.E.R
10.07.2005, 13:27
А вообще я солидарен с моими коллегами :D Стандартные компоненты - ацтой! Рисуй все САМ!!! Причем именно через moveTo - lineTo!!! Будет на порядок красивее (если постараться) и надежно! ;)
Интересно, а HTML с <table> не катит?
adelante
10.07.2005, 17:53
Я окончательно забил на DataGrid и решил сделать все сам.
Насчет html tabl, то не катит. :)
Теперь вот такой вопрос:
-----------------------------------------------------------------
spacing=60;
baseY=_root.b11._x;
baseY2=_root.b22._x;
ht=_root.b11._width;
ht2=_root.b22._width;
for(i=0;i<5;i++){
_root.b11.duplicateMovieClip("I" + i, i,{_x:baseY+(spacing*(i+1))})
_root.b22.duplicateMovieClip("Item" + i,i+10,{_x:baseY2+(spacing*(i+1))
}
----------------------------------------------------------------------
Если этот код вставить в флеш, то можно увидить расположеные рядом текстовые поля. Текстовые поля чередуются, т.е. Dynamic- Input - Dynamic - Input и так далее.
b11 - перемен динамично текстового поля
b22 - Input text field
Так вот как мне вывести значения в динамичные поля.
Насколько я понимаю это тесковые поля имеют назания "I"+i.
Помогите :)
P.S. куда можно выложить исходник для примера ? :)
adelante
10.07.2005, 17:59
ass=list.dataProvider.getItemAt(1).label - кто такой label??? Там же только name и price есть? Или это для примера как переменная?
Если бы встретил, то угостил бы тебя пивом :)
adelante
10.07.2005, 18:33
сорри за поспешный вопрос, я уже разобрался :).
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.