Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-07-2011, 15:40   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 68
Komma-Eingabe in Numeric Stepper

Hallo Freunde,

gibt es eine einfache Möglichkeit, dass der User eine Gleitkommazahl, die nicht wie vorgesehen mit einem Punkt unterteilt ist, sondern mit einem Komma, eingeben kann? Wenn man ansonsten eine "komma-" Zahl eingibt, dann wird das als NaN übernommen. Dabei möchte ich die Unterteilung mit dem Punkt weiterhin ermöglichen. Gibts da eine simple Lösung?

Gruß
Moorhuhn ist offline   Mit Zitat antworten
Alt 06-07-2011, 23:09   #2 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.624
very dirty, aber funzt:
lege eine TextInput über den Eingabebereich des Steppers und
fange die Changeereignesse des Steppers und des Inputs ab und
wandle mit regulären ausdrücken dein Textfeld um.
PHP-Code:
import flash.events.Event;
import fl.controls.NumericStepper;
import fl.controls.TextInput;
var 
ns:NumericStepper = new NumericStepper();
ns.minimum = -100;
ns.maximum 100;
ns.stepSize 0.1;
addChild(ns);

var 
ti:TextInput = new TextInput();
addChild(ti);
ti.ns.x;
ti.ns.y;
ti.width 60;
ti.restrict "0-9 //-//,.";

var 
colonToPointRegExp:RegExp = /,/g;

ti.addEventListener("change",tiChangeHandler)
ns.addEventListener("change",nsChangeHandler);

function 
tiChangeHandler(e:Event):void{    
    var 
pointString:String;
    
pointStringti.text.indexOf(".")==ti.text.length-|| ti.text.indexOf(",")==ti.text.length-"." "";
    var 
val:Number Number(ti.text.replacecolonToPointRegExp"."))
    
ns.value val;
    
ti.text String(val)+pointString;
}
function 
nsChangeHandler(e:Event):void{    
    
ti.text String(ns.value);

Sicher wär es aber besser, selbst einen NumericStepper zu coden, der das von Natur aus kann.

LG ANdré
Angehängte Dateien
Dateityp: swf stepperFake.swf (19,2 KB, 2x aufgerufen)
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 06-07-2011, 23:17   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 2.745
hab grad kein Flash zur Hand, aner ich würde versuchen, ob du den KeyboardEvent.KEY_DOWN abfangen kannst, und bei Eingabe eines Kommas, einen Punkt setzt.

da ich grad kein Flash zur hand habe kann ich nicht rumprobieren, aber mögliche Ansätze die mir einfallen wären
  • KeyboardEvent abfangen, und KeyboardEvent.charCode ändern
  • einfach einen Punkt zum Text des Feldes hinzufügen und das KeyboardEvent canceln
  • KeyboardEvent canceln, und ein eingenes KeyboardEvent mit Punkt statt Komma dispatchen
  • in den Innereien des NumericSteppers wühlen, und die Stelle suchen, wo der Value aus dem Text ermittelt wird, und dort einfach ein String.replace zwischeschalten.
    So wird der Inhalt des Textfeldes (also das Komma) nicht geändert, und trotzdem mit einem Punkt gerechnet
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 07-07-2011, 08:32   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.382
Wir sprechen hier aber schon noch von Flex Komponenten?
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
numeric Stepper Jochi ActionScript 2 4 26-02-2009 00:29
numeric stepper height neo14 Komponenten und SmartClips 3 11-05-2007 13:20
Numeric stepper für nextFrame MartinaBiomech ActionScript 1 2 30-05-2005 14:19
numeric stepper bubzilla Komponenten und SmartClips 1 28-07-2004 11:05
numeric stepper bubzilla Flash MX 2004 1 27-07-2004 12:14


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele