PDA

Volledige versie bekijken : knop vraag


vegeto
%Europe/Berlin %975 %2005, 00:24
is het ook mogelijk om in plaats van on (release) {dat is dus 1 keer klikken}

on (dubbelklik) te doen dat je dus 2 keer moet klikken

Folkert
%Europe/Berlin %005 %2005, 01:07
geef je button even een instanceNaam en ga naar je frame1 (gewone timeLine)

var dubbelKlik = false;
jeButtonInstance.onRelease = function()
{
if(_level0.dubbelKlik)
{
trace("er is twee keer geklikt");
_level0.dubbelKlik = false;
}else
{
_level0.dubbelKlik = true;
}
}

Hum bij nader inzien kan je dan enkel 1 button zo gebruiken. als je veel buttons zo wilt gebruiken kan je wellicht beter een Movieclip als button gebruiken en code gebruiken zoals een prototype

MovieClip.prototype.dubbelKlik = function()
{
if (this.dubbel)
{
trace("dubbel geklikt");
this.dubbel = false;
return true;
}
else
{
this.dubbel = true;
return false;
}
};

jeButton.onRelease=function()
{
trace("dubbelklik = "+this.dubbelKlik());
}

vegeto
%Europe/Berlin %477 %2005, 12:27
ik denk dat ik iets verkeerd heb gedaan want ik krijg 2 errors

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
MovieClip.prototype.dubbelKlik = function()

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 16: Statement must appear within on/onClipEvent handler
jeButton.onRelease=function()

Total ActionScript Errors: 2 Reported Errors: 2

ik ken dit soort van kode niet zo goed dus van daar

Roenes
%Europe/Berlin %483 %2005, 12:35
Code moet je op een frame zetten en niet op een button/mc.

Alleen deze code is niet helemaal waterdicht. Je kunt nu ook een hele lange periode tussen 2 clicks hebben en die wordt dan toch gezien als dubbelklik. Het beste kun je een dubbelklik maken met een tijdscontrole ertussen :)

Folkert
%Europe/Berlin %508 %2005, 13:11
wat jij hebt gedaan is de code gezet op de movieclip, en niet gewoon op de frame 1 van je hoofdmovie ;) thats all. Even de code verplaatsen dus en klaar.
Mocht je het niet snappen dan even een volgorde van handelen.
Maak een nieuwe flashfile, selecteer frame1 , druk F9, plak de code, druk f9, trek een rechthoek, maak daar een movieclip van en geef die de instanceNaam 'jeButton'

succes

Folkert
%Europe/Berlin %591 %2005, 15:11
nog even een ranzig timertje erin gezet

MovieClip.prototype.dubbelKlik = function()
{

if (this.dubbel) {
var curTime = getTimer();
var tempTime = curTime-this.lastTime;
this.dubbel = false;
if (tempTime<1000) {
trace("dubbel geklikt");

return true;
} else {
trace("te laat");
this.lastTime = getTimer();
return false;
}
} else {
this.dubbel = true;
this.lastTime = getTimer();
return false;
}
};
jeButton.onRelease = function() {
this.dubbelKlik();
};

vegeto
%Europe/Berlin %592 %2005, 15:12
um wat is de instance name van de objekt ik heb dubbelKlik geprobeerd en dubbel maar geen een werkt

Jordy
%Europe/Berlin %606 %2005, 15:34
de instance name is "jeButton"

vegeto
%Europe/Berlin %638 %2005, 16:19
als ik bvb een alert venster will oproepen dan zet ik dus de code op

trace("dubbel geklikt");

maar hij doet dus niks hoe komt dat ???

Jordy
%Europe/Berlin %641 %2005, 16:23
trace werkt alleen als je de fla test dmv testmovie in flash (control enter). Als je de swf bekijkt zie je geen trace.

latino
%Europe/Berlin %646 %2005, 16:31
var lastClick:Number;

myButton_btn.onRelease = function(){
if(getTimer() - lastClick < 500){//500 is een halve seconde
// je acties
}
lastClick = getTimer();
}

Folkert
%Europe/Berlin %649 %2005, 16:34
dan werkt het maar voor 1 knop op die manier ;) of elke button (clip) moet zijn eigen lastClick hebben.

latino
%Europe/Berlin %650 %2005, 16:36
;) je hebt gelijk dan maar een functie van maken