motoroller
26.02.2011, 03:16
Надо организовать drag and drop между tilelist (берусь за картинку -ячейку) и datagrid и переместить на определенную запись в datagrid ...
Собственно как такое реализовать?
Добавлено через 16 часов 45 минут
import fl.controls.TileList;
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.events.ListEvent;
// create TileList instance and position it
var myTileList:TileList = new TileList();
myTileList.move(10,10);
var startX:Number;
var startY:Number;
// create TextFormat object to style labels
var tf:TextFormat = new TextFormat();
tf.font = "Verdana";
tf.bold = true;
tf.color = 0xFF6666;
tf.size = 14;
// add content to the TileList
myTileList.addItem({label:"Montreal", source:"http://www.helpexamples.com/images/montreal/images/IMG_5057.jpg"});
myTileList.addItem({label:"Swan", source:"http://www.helpexamples.com/flash/images/gallery1/images/pic11.jpg"});
myTileList.addItem({label:"Sunset", source:"http://www.helpexamples.com/flash/images/gallery1/images/pic14.jpg"});
myTileList.addItem({label:"Gate", source:"http://www.helpexamples.com/flash/images/gallery2/images/IMG_1592.jpg"});
// set column and row values
myTileList.columnWidth = 200;
myTileList.rowHeight = 140;
myTileList.columnCount = 2;
myTileList.rowCount = 2;
myTileList.height = 290;
myTileList.width = 410;
// disable scrolling
myTileList.scrollPolicy = "off";
// add to the display (Stage)
addChild(myTileList);
// set style for labels
myTileList.setRendererStyle("textFormat", tf);
myTileList.setRendererStyle("imagePadding", 5);
myTileList.setStyle("contentPadding", 5);
myTileList.addEventListener(MouseEvent.MOUSE_DOWN, startDragFile);
myTileList.addEventListener(MouseEvent.MOUSE_UP, stopDragFile);
var dp:DataProvider = new DataProvider();
dp.addItem({name:"Папка 1"});
dp.addItem({name:"Папка 2"});
dp.addItem({name:"Папка 3"});
var myDataGrid:DataGrid = new DataGrid();
myDataGrid.addColumn("name");
myDataGrid.dataProvider = dp;
myDataGrid.width = 200;
myDataGrid.move(430, 10);
addChild(myDataGrid);
function startDragFile(event:MouseEvent):void {
trace(event.target.label)
if(event.target.label!=undefined) {
//startX = event.target.x;
//startY = event.target.y;
event.target.startDrag();
}
}
function stopDragFile(event:MouseEvent):void {
trace(event.target.dropTarget)
event.target.stopDrag();
}
Накидал код, многое не решено, но первая проблема, что при перетаскивании объекта т.е элемента из tile list за его пределы объект пропадает, под слоем, скажите пожалуйста как решить данную проблему
Собственно как такое реализовать?
Добавлено через 16 часов 45 минут
import fl.controls.TileList;
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.events.ListEvent;
// create TileList instance and position it
var myTileList:TileList = new TileList();
myTileList.move(10,10);
var startX:Number;
var startY:Number;
// create TextFormat object to style labels
var tf:TextFormat = new TextFormat();
tf.font = "Verdana";
tf.bold = true;
tf.color = 0xFF6666;
tf.size = 14;
// add content to the TileList
myTileList.addItem({label:"Montreal", source:"http://www.helpexamples.com/images/montreal/images/IMG_5057.jpg"});
myTileList.addItem({label:"Swan", source:"http://www.helpexamples.com/flash/images/gallery1/images/pic11.jpg"});
myTileList.addItem({label:"Sunset", source:"http://www.helpexamples.com/flash/images/gallery1/images/pic14.jpg"});
myTileList.addItem({label:"Gate", source:"http://www.helpexamples.com/flash/images/gallery2/images/IMG_1592.jpg"});
// set column and row values
myTileList.columnWidth = 200;
myTileList.rowHeight = 140;
myTileList.columnCount = 2;
myTileList.rowCount = 2;
myTileList.height = 290;
myTileList.width = 410;
// disable scrolling
myTileList.scrollPolicy = "off";
// add to the display (Stage)
addChild(myTileList);
// set style for labels
myTileList.setRendererStyle("textFormat", tf);
myTileList.setRendererStyle("imagePadding", 5);
myTileList.setStyle("contentPadding", 5);
myTileList.addEventListener(MouseEvent.MOUSE_DOWN, startDragFile);
myTileList.addEventListener(MouseEvent.MOUSE_UP, stopDragFile);
var dp:DataProvider = new DataProvider();
dp.addItem({name:"Папка 1"});
dp.addItem({name:"Папка 2"});
dp.addItem({name:"Папка 3"});
var myDataGrid:DataGrid = new DataGrid();
myDataGrid.addColumn("name");
myDataGrid.dataProvider = dp;
myDataGrid.width = 200;
myDataGrid.move(430, 10);
addChild(myDataGrid);
function startDragFile(event:MouseEvent):void {
trace(event.target.label)
if(event.target.label!=undefined) {
//startX = event.target.x;
//startY = event.target.y;
event.target.startDrag();
}
}
function stopDragFile(event:MouseEvent):void {
trace(event.target.dropTarget)
event.target.stopDrag();
}
Накидал код, многое не решено, но первая проблема, что при перетаскивании объекта т.е элемента из tile list за его пределы объект пропадает, под слоем, скажите пожалуйста как решить данную проблему