Toon posts:

[Flash MX] keydown werkt niet voor delete en enter?

Pagina: 1
Acties:

Verwijderd

Topicstarter
zijn bepaalde toetsen ge-reserverd of zo?


code:
1
2
3
onClipEvent (keyDown) {
   trace(Key.getCode());
}


geeft voor elke toets een waarde, behalve enter, delete, escape en backspace

en enter en delete zijn nou juist de toetsen die ik wil gebruiken :|

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je wat aan het volgende:

Flash ActionScript:
1
2
3
4
5
6
7
onClipEvent (enterFrame) {
 if(Key.isDown(Key.DELETEKEY)) {
  trace('delete has been pressed')
} else if (Key.isDown(Key.ENTER)) {
  trace('enter has been pressed')
 }
}


Uit de Actionscript dictonary gehaald.

[ Voor 6% gewijzigd door BtM909 op 02-10-2003 13:59 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
klopt, die had ik ook al geprobeerd, zelfde effect however

logisch ook want het enige wat Key.DELETEKEY doet is volgens mij die keycode neer zetten...

het ligt zo te zien aan het gebruik van het type clipEvent, want bij enterFrame werkt het wel, ware het niet dat het pas werkt nadat een andere toets is ingedrukt.
edit:
dit ligt aan mijn movie zie ik nu

Maar eigenlijk wil ik dat het met een keyDown werkt, aangezien dat minder CPU-vermogen kost...

[ Voor 7% gewijzigd door Verwijderd op 02-10-2003 14:10 ]


Verwijderd

Dit:

Flash ActionScript:
1
2
3
4
5
6
7
8
#initclip
test=function(){}
var a=test.prototype=new MovieClip();
a.keyDown=function(){
    trace("Key pressed");
}
Object.registerClass("mcID",test);
#endinitclip

Werkt inderdaad niet, maar wat je wel kunt doen is een listener aanmaken:
Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
#initclip
test=function(){}
var a=test.prototype=new MovieClip();
a.onLoad=function(){
    listen=new Object();
    listen.onKeyDown=function(){if(Key.isDown(13)){trace("Enter pressed");}};
    Key.addListener(listen);
}
Object.registerClass("mcID",test);
#endinitclip


Nou werkt dit voorbeeld bij mij alleen als ik de movie publish, dat is omdat als ik mijn movie exporteer het drukken op enter er alleen voor zorgt dat mijn movie wilt gaan afspelen. 13 is dus de keycode voor enter, bij het exporteren werkt dit bijv. wel voor alle letters :).

Verwijderd

Ik heb hetzelfde probleem gehad, met een listener werkt het nu wel:

keyListener.onKeyUp = function () {
if(key.getCode() == Key.ENTER) {
placeholder.gotoAndPlay(1);
};
if(key.getCode() == Key.SPACE){
if (moviePlaying) {
placeholder.stop();
}else {
placeholder.play();
};
};
if (Key.getCode() == Key.UP) {
placeholder.gotoAndStop(1);
};
if (Key.getCode() == Key.DOWN) {
placeholder.gotoAndStop(placeholder._totalframes);
};
};
Key.addListener(keyListener);

Verwijderd

Topicstarter
dat werkt inderdaad beter!!

thanx man :)

resultaat (nog in progress) is overigens hier te zien.. :)

Verwijderd

Uhm ... waarschijnlijk werkt hij niet in de interne player van Flash, dit komt doordat deze knoppen gereserveerd zijn. Probeer hem eens te publishen, en dan in je browser of externe player te spelen ...

Verwijderd

Topicstarter
was al gezegd, en klopt inderdaad!

Verwijderd

Topicstarter
ok volgend probleem:

ik wil TAB ook gebruiken, maar door de extra accessibility opties die in de flash player 7 zitten werkt dat dubbel op (tab in flash player 7 zorgt er voor dat het volgende object gemarkeerd wordt)

kan ik dat uitzetten?

...

en nog 1, blijkbaar overruled IE de in mijn movie ingebouwde ctrl+c/v opties, en die vond ik nou juist zo hendig ;)

mozilla heeft dat probleem niet, dus het ligt wel degelijk aan IE

dat kan ik zeker niet omzeilen?

Verwijderd

Misschien dat dit helpt, komt van http://www.flashguru.co.uk
By default, in the local test player(Control > Test Movie), if you try and press the enter key, to test some code that uses it, your code will not work because the player over-rides the key press as a keyboard shortcut to pause and play the movie, the same goes for the tab key and other important system keys, such as Ctrl, Shift etc... So if you want to test your tabIndexes in the test player, so u can use trace and the debugger, simply select Disable Keyboard Shortcuts from the Control menu (Control > Disable Keyboard Shortcuts) and your code will now recieve the key presses. Saves me alot of faffing around! Think this is something else i was slow on, these little fine details just fly over my head.
En nog even een leukere manier om key acties toe te voegen ipv. allemaal If statements uit te voeren:

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#initclip
test=function(){}
var a=test.prototype=new MovieClip();
a.onKey13=function(){
    trace("Enter pressed");
}
a.onLoad=function(){
    listen=new Object();
    listen._parent=this;
    listen.onKeyDown=function(){this._parent["onKey"+Key.getCode()]();};
    Key.addListener(listen);
}
Object.registerClass("mcID",test);
#endinitclip

Verwijderd

Topicstarter
die had ik inmiddels gevonden ja, maar ik zit nog steeds met dat laatste probleem van ctrl+c/v
Pagina: 1