Volledige versie bekijken : Hoe door textfields met pijltjestoetsen
seba28976
%Europe/Berlin %487 %2008, 11:41
Hallo,
Ik zou graag mijn cursor laten verspringen in textfields. Met de tab lukt dit uiteraard maar nu wil ik ook nog als ze de pijl naar beneden indrukken dat hij naar de beneden textfield gaat en omgekeerd naar boven. Maar ik vind precies niet goed wat.. ik dacht aan zoiets:
_root.onEnterFrame = function() {
if (Key.isDown(Key.DOWN)) {
Key.TAB;
Maar dit lukt hoegenaamd niet. Ik heb ook 2 radiobuttons die ik ook een tabindex heb gegeven maar de tab gaat tot de eerste radiobutton en niet meer verder. Iemand een idee hoe ik ook hier met de toetsen verder kan. Bedoeling is om geen muis nodig te hebben in deze form.
thnx
Seba
Jan
%Europe/Berlin %492 %2008, 11:49
trace(Key.TAB)//ouput: 9
En "9" op zich doet niet veel hè ... 8~
Het staat (ergens) in de help uitgelegd dacht ik, hoe je de volgorde van de 'selects' kan aanpassen.
edit:
tabIndex (TextField.tabIndex property)
public tabIndex : Number
Lets you customize the tab ordering of objects in a SWF file. You can set the tabIndex property on a button, movie clip, or text field instance; it is undefined by default.
If any currently displayed object in the SWF file contains a tabIndex property, automatic tab ordering is disabled, and the tab ordering is calculated from the tabIndex properties of objects in the SWF file. The custom tab ordering only includes objects that have tabIndex properties.
The tabIndex property must be a positive integer. The objects are ordered according to their tabIndex properties, in ascending order. An object with a tabIndex value of 1 precedes an object with a tabIndex value of 2. If two objects have the same tabIndex value, the one that precedes the other in the tab ordering is undefined.
The custom tab ordering defined by the tabIndex property is flat. This means that no attention is paid to the hierarchical relationships of objects in the SWF file. All objects in the SWF file with tabIndex properties are placed in the tab order, and the tab order is determined by the order of the tabIndex values. If two objects have the same tabIndex value, the one that goes first is undefined. You should not use the same tabIndex value for multiple objects.
Groeten,
Jan
seba28976
%Europe/Berlin %498 %2008, 11:57
selects? Hoe bedoel je.. Ik wil dus gewoon met de pijl op en neer door mijn textvelden en radiobuttons kunnen lopen om dan uiteindelijk wanneer hij op de save knop komt gewoon op enter drukken en bewaren. Probleem is echter dat dit alles in de root staat. Kan je verschillende opdrachten geven aan de ENTER toets. Bv.. wanneer op textveld staat is Enter naar beneden. Maar op save toets is Enter Saven. Dan kan je vermoedelijk niet met een onEnterframe gaan werken? Ik probeer diverse zaken te combineren maar met beperkte kennis is flash is dat niet eenvoudig.. Toch alvast bedankt..
Jan
%Europe/Berlin %501 %2008, 12:01
selects? Hoe bedoel je..
Dit bedoelde ik maar ik kwam er even niet op. :#
onSetFocus (TextField.onSetFocus handler)
onSetFocus = function(oldFocus:Object) {}
Invoked when a text field receives keyboard focus. The oldFocus parameter is the object that loses the focus. For example, if the user presses the Tab key to move the input focus from a button to a text field, oldFocus contains the button instance. If there is no previously focused object, oldFocus contains a null value.
Groeten,
Jan
seba28976
%Europe/Berlin %503 %2008, 12:04
Je bedoeld het goed Jan maar ik snap het niet. Hoe kan je als in die OLDFOCUS een naam geeft gaan navigeren met de pijltjes. Te meer heb ik er nu op gelet dat wanneer hij in mijn frame komt met de tekstvelden en je op ENTER duwt hij gewoon verder gaat. Eveneens mijn vraag hier hoe kan ik dit vermijden?
Dank U
seba28976
%Europe/Berlin %771 %2008, 18:31
niemand? eventueel met een simpel vb'tje.. de rest zoek ik dan wel uit..
seba28976
%Europe/Berlin %364 %2008, 08:44
Het volgende heb ik...
anaam_txt.setFocus();
anaam_txt.tabIndex = 1;
vnaam_txt.tabIndex = 2;
email_txt.tabIndex = 7;
straat_txt.tabIndex = 3;
nr_txt.tabIndex = 4;
pc_txt.tabIndex = 5;
plaats_txt.tabIndex = 6;
anaam_txt.onSetFocus = function() {
if (Key.isDown(Key.DOWN)) {
trace("DOWN");
vnaam_txt.setFocus();
} else if (Key.isDown(Key.UP)) {
trace("UP");
}
};
Het eigenaardige is dat hij zelfs als ik op pijl naar beneden of boven druk zelfs geen trace doet. Dus hij reageert niet op die buttons.. Als ik hem compileer dan doet hij ook mijn setfocus niet. Wel als ik hem start via de html file? Wat doe ik nog verkeerd?
Jan
%Europe/Berlin %381 %2008, 09:08
setFocus (Selection.setFocus method)
public static setFocus(newFocus: Object) : Boolean
this.createTextField("username_txt", this.getNextHighestDepth(), 100, 100, 100, 22);
Selection.setFocus("username_txt");
En bij jou word je if statement trouwens pas beoordeeld nadat: je textField focus krijgt + druk op pijltje (tegelijkertijd)...(of je moet het daar in een onEnterFrame zetten want nu beoordeelt Flash het maar op 1 moment.
onSetFocus (TextField.onSetFocus handler)
onSetFocus = function(oldFocus:Object) {}
Hoe kan je als in die OLDFOCUS een naam geeft
niet..., dat doet ie vanzelf... :)
Groeten,
Jan
seba28976
%Europe/Berlin %387 %2008, 09:18
Ok heb dit nu gewijzigd naar:
_root.onEnterFrame = function() {
anaam_txt.onSetFocus = function() {
if (Key.isDown(Key.DOWN)) {
trace("DOWN");
vnaam_txt.setFocus();
} else if (Key.isDown(Key.UP)) {
trace("UP");
}
};
vnaam_txt.onSetFocus = function() {
if (Key.isDown(Key.DOWN)) {
trace("DOWN");
straat_txt.setFocus();
} else if (Key.isDown(Key.UP)) {
trace("UP");
anaam_txt.setFocus();
}
};
};
maar.. :( nog steeds niets.. geen beweging in te krijgen...
Jan
%Europe/Berlin %392 %2008, 09:25
anaam_txt.tabIndex = 1;
vnaam_txt.tabIndex = 2;
straat_txt.tabIndex = 3;
nr_txt.tabIndex = 4;
pc_txt.tabIndex = 5;
plaats_txt.tabIndex = 6;
email_txt.tabIndex = 7;
var velden:Array=[anaam_txt, vnaam_txt, straat_txt, nr_txt, pc_txt, email_txt, plaats_txt]
var selectionCounter:Number=0;
Selection.setFocus(velden[selectionCounter]);
this.onEnterFrame=function()
{
if (Key.isDown(Key.DOWN) && selectionCounter<7)
{
trace("DOWN");
selectionCounter++;
Selection.setFocus(velden[selectionCounter]);
}
else if (Key.isDown(Key.UP) && selectionCounter>0)
{
trace("UP");
selectionCounter--;
Selection.setFocus(velden[selectionCounter]);
}
};
Groeten,
Jan
seba28976
%Europe/Berlin %403 %2008, 09:41
SUPER het werkt... mag ik je nog iets vragen.. na de tekstvelden heb ik nog 4 radiobuttons. het zijn 2 vragen waar ze met ja of nee kunnen antwoorden. Ik heb dus het volgende nog extra:
v1_nee.tabIndex = 8;
v1_ja.tabIndex = 9;
v2_nee.tabIndex = 10;
v2_ja.tabIndex = 11;
Als ik die toevoeg aan de array.. zal dit werken? Ik wil eveneens mijn save knop een index geven en wanneer deze focus krijgt hem iets in mijn status venster laten zetten.
ik had gedacht aan
if (submit.setFocus == true) {
stat = "Druk op Enter of Spatiebalk om te bewaren !!!";
}*/
Ik zou dit dan in de if en de else plaatsen? Klopt mijn redenering? Alvast bedankt voor de GROTE hulp...
seba28976
%Europe/Berlin %407 %2008, 09:46
Heb dit even getest en wanneer hij op de eerste radiobut. komt dan stopt de navigatie. Kan enkel terug omhoog.. niet verder... Bijkomende vraag is wanneer hij op de SAVE knop komt dat hij mij status invult. Dit lukt niet maar wanneer ik op SPATIE duwt dat lukt. MAAR druk ik op ENTER dan springt hij naar de volgende Frame???? Dat mag absoluut niet.. hoe vang ik dit eveneens op? Sorry voor mijn vele vragen maar ik leer elke dag bij...
Jan
%Europe/Berlin %412 %2008, 09:53
Als ik die toevoeg aan de array.. zal dit werken?
'k Denk het wel.
Heb dit even getest en wanneer hij op de eerste radiobut. komt dan stopt de navigatie. Kan enkel terug omhoog.. niet verder...
&& selectionCounter<7
In plaats van het aantal (7) er 'hard' in te zetten gebruik(te) je (ik) beter de 'relatieve' array.length property.
Ik wil eveneens mijn save knop een index geven en wanneer deze focus krijgt hem iets in mijn status venster laten zetten.
var someListener:Object = new Object();
someListener.onSetFocus = function (oudeFocus,nieuweFocus)
{
trace("oudeFocus: " +oudeFocus +", "+"nieuweFocus :" +nieuweFocus :)
if(nieuweFocus==submit)
{
trace("Druk op Enter of Spatiebalk om te bewaren !!!");
}
}
Selection.addListener(someListener);
Groeten,
Jan
seba28976
%Europe/Berlin %453 %2008, 10:53
Schitterend, Jan.. Het begint aardig vorm te nemen.. Nu nog dit.. Als ik met mijn pijltjes over de radioboxen loopt verspringen deze. Dus als ik van v1_nee naar v1_ja verspring dan selecteerd hij deze ook. Dat wil ik uiteraard niet. Enkel als ze op spatiebalk drukken wil ik dat hij de radiobox selecteerd. Bijkomend heb ik nog altijd het probleem als ik op de ENTER toets duw hij onmiddellijk door gaat in de frames wat ABSOLUUT NIET de bedoeling is.. Hoe kan ik die ENTER blokkeren...?
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.