私はPHPのバックエンドにフレックスからPOSTを送信することだし、PHPのコードは、このバック戻っている:PHPが返すXML出力の数値文字列をActionscriptオブジェクトが変換するのはなぜですか?
<?xml version="1.0" encoding="utf-8">
<rs>
<action>getConfiguration</action>
<num>1</num>
<configuration>
<armed>1</armed>
<threshold>90.0</threshold>
</configuration>
</rs>
罰金だが、私は
を通じて私のフレックス・リターン・ハンドラ内で解析されたXMLフィールドにアクセスするときvar o:Object = event.result.rs.configuration;
私はそのo.thresholdは "90" の代わりに "90.0" である(FlashDevelopのを踏んで)を参照してください。
は、私が "90.0" が必要です。なぜこの変換が行われていますか、どのように停止しますか?
おかげで読書のために、そして任意の洞察力のためにあなたが提供することができます。
2016年4月20日更新:最初の波のための
おかげで、私はそれを感謝し、人々をコメントしています。小数点以下の桁数を修正する必要はありませんでした.1桁以上(たとえば90.25)ですが、「90.00」は必要ありません。私はそれに何か数学をする必要はありません、それは別のデバイスで行われますが、私は90のような数字の代わりに.0が必要です。
90.0は編集するフォームになり、私はそれが欲しい文字列にする。私は先に行って、これらを試してみました:魔法の
// fails
var num:Number = Number(event.result.rs.configuration.threshold);
var num2:Number = Number(o.threshold);
var num3:String = Number(o.threshold).toString();
var num4:String = String(o.threshold).toString();
// works
var num5:String = Number(o.threshold).toFixed(1).toString();
何もオブジェクトが「90」を開催することを示し調べるため、期待されている番号()、と起こりませんでした。私は(それは価値があるもののために、それはまた、「TINYTEXTとしてのMySQLに保存されているが、私はドンの「90.0」がXMLであると一般的なオブジェクトはそれにアクセスするために使用されている場合、私は90.0を保持している文字列を参照してくださいだろうと期待しているだろうなぜXML出力が重要であるかを見てください)。 90.1と90.18は90.1と90.18に戻ります。
私は既に文字列のように扱うことができると知っていましたが、 '。'を探し、存在しない場合は、 ".0"を連結して、私の編集フォームに表示します。しかし、私の90.0の文字列を90として保存することを決定するよりスマートなものは何ですか?そしてそれを切り捨てるように私はどのように言いますか? Atriace応答から、いくつかの検索/推測建物の後に更新
2016年4月21日には、私はまだ
var dataX:String = new XML(event.message.body).toXMLString();
var xmlDoc:XMLDocument = new XMLDocument(dataX);
var decode:SimpleXMLDecoder = new SimpleXMLDecoder(true);
var resultObj:Object = decode.decodeXML(xmlDoc);
とで、よりアトミックに行わXML構文解析を持ってしようとした、I resultObj.rs.configuration.threshholdが "90"を保持していることを参照してください。私も同じことをいくつか試みました。そのevent.message.bodyは90.0だった見てよかった、と何かが、私はそれではなく、文字列の数に変えたい決める停止した場合はそれもよりよいだろう。
'var n:Number = Number(event.result.rs.configuration);を使用するとどうなりますか?これは90.0ですか?また 'event.result.rs.configuration.threshhold'をターゲットにしてはいけませんか? –
@ VC.oneあなたの最初の提案は動作しません。なぜなら、 'event.result.rs.configuration'は汎用オブジェクトではないNumberであるからです。提案: 'var treshhold:Number = Number(event.result.rs.configuration.treshhold); ' – DodgerThud
または、これを" 90.0 "にする必要があるので、おそらくそれを文字列として保持したいと思うかもしれません:treshhold:String = Number(event。結果.rs.configuration.treshhold);別の方法として、番号を(計算に必要な場合は)そのままにして、NumberFormatter – Philarmon