PDA

Volledige versie bekijken : datagrid: dubbelClick and run


Yeroeni
%Europe/Berlin %720 %2006, 17:17
Ik heb een aantal links in mijn datagrid staan.
Nu wil ik graag dat bij dubbelklikken van de link de link geopend wordt.

Ik kan in de help geen functie vinden die dit afvangt..

Can somebody help me out ?



greetz,

Yeroeni

Pointer
%Europe/Berlin %731 %2006, 17:33
Misschien heb je hier wat aan.

my_mc.useHandCursor = false;
my_mc.lastClick = 0;
my_mc.reactionTime = 250;
my_mc.onRelease = function() {
var clickTime:Number = getTimer();
if ((clickTime-this.lastClick)<this.reactionTime) {
doubleClick();
}
this.lastClick = clickTime;
};
function doubleClick():Void {
trace ("you double clicked!");
}



Greetz://
http://home.student.utwente.nl/l.d.meijerink/Option/signature.swf

Yeroeni
%Europe/Berlin %385 %2006, 09:15
Yep, dat dacht ik ook met exact gelijke code op te lossen... maar nu een dubbelklik op een link in een DATAGRID...

Greetz,

Yeroeni

Pointer
%Europe/Berlin %393 %2006, 09:26
Weinig ervaring met components, databinding, of grids :) Maargoed, als je een kijkje neemt in livedocs, of je helpfiles zul je zien dat dat een heel hoofdstuk appart is.

Misschien kun je de code zoals boven hieraan koppelen.

DataGrid.cellPress
Broadcast when a cell is pressed (clicked).
DataGrid.change
Broadcast when an item has been selected.


Nogmaals werken met components is niet echt mijn ding.

Greetz://

TheDutch
%Europe/Berlin %822 %2006, 19:43
Nogmaals werken met components is niet echt mijn ding.

Gelukkig wel de mijne ;)

Yep, dat dacht ik ook met exact gelijke code op te lossen... maar nu een dubbelklik op een link in een DATAGRID...

Ik heb een kant en klare functie hiervoor liggen op mijn werk. Die zal ik je morgen even geven :).

Dauntless
%Europe/Berlin %854 %2006, 20:30
Mocht het dringend zijn:
myDP = new Array({name:"FlashFocus", url:"http://www.flashfocus.nl", About:"Flash community"}, {name:"Dauntless.be", url:"http://www.dauntless.be", About:"Mijn sitje"});
myDG.dataProvider = myDP;
var pressed:Object = new Object();
var timer:Number = 0;
var clickSpeed:Number = 1000;
var list:Object = new Object();
list.cellPress = function (evt:Object)
{
if(pressed.x == evt.columnIndex && pressed.y == evt.itemIndex)
{
if(getTimer() - timer < clickSpeed)
{
launch(myDG.getItemAt(evt.columnIndex).url);
} else
{
timer = getTimer();
}
} else {
pressed.x = evt.columnIndex;
pressed.y = evt.itemIndex;
timer = getTimer();
}
}
myDG.addEventListener("cellPress", list);
function launch(target:String)
{
trace("launch! -> "+target);
}
Maar ik ben zowieso benieuwd naar TheDutch's code, aangezien ik ook echt niet goed ben met components :#.

Yeroeni
%Europe/Berlin %387 %2006, 09:18
Super!

Ik had de cellPress zelf helemaal over het hoofd gezien..:~(

Anyway thx voor de input !!



Greetz,

Yeroeni

Dauntless
%Europe/Berlin %554 %2006, 13:18
Pointer had toch gezegd dat er een cellPress handler was? :)

Yeroeni
%Europe/Berlin %812 %2006, 19:29
YEP, daarna heb ik de boel ook al voorelkaar gemaakt :)
Maar toch bedankt ook voor jou moeite Dauntless !

Greetz,

Yeroeni

TheDutch
%Europe/Berlin %366 %2006, 08:48
Maar ik ben zowieso benieuwd naar TheDutch's code, aangezien ik ook echt niet goed ben met components :#.
Aangezien ik het erg druk heb de laatste dagen heb ik tot nu toe niet een goed moment gevonden om mijn functie te laten zien. Maar nu heb ik wel even tijd, dus dit is dus de functie die ik ervoor gemaakt heb :):

public function onDblClick(callBack:Function,event:Object):Void{
// Is an item selected? If so...
if(event.target.selectedIndex != undefined){
// Set the old and new selectedIndex
event.target.clickAreaOld = event.target.clickArea;
event.target.clickArea = event.target.selectedIndex;
}

// Is the cell already pressed within the time range? If not...
if(event.target.clicked == undefined ){
// Set the clicked boolean to true
event.target.clicked = true;
}

// Is there a dubble click within the time range? If so...
else if(event.target.clickArea == undefined || event.target.selectedIndex == event.target.clickAreaOld){
// Reset the clicked boolean
event.target.clicked = undefined;

// Call the callBack function
callBack();
}

// Set an interval to check for multiple clicks
var tempInterval:Number = setInterval(resetClicked,500);

// Function that executes on every interval
function resetClicked(){
// Clear interbval and reset clicks
clearInterval(tempInterval);
event.target.clicked = undefined;
}
}