2012-05-18 126 views
0

我试图将百分比转换为小数点,一旦单击按钮。 我有一个用于用户输入的输入文本字段,另一个文本字段在它下面,这是一个动态文本字段,用于在点击按钮后显示结果。将百分比转换为十进制

我有两个类:主要和我的数学实用程序类。 我的问题是我不知道如何从主类中的util类调用 的函数来获得这个工作。

我无法得到最后一部分的工作。这里是我的代码:

public class Main extends Sprite 
{ 
    private var pResult:TextField; 
    private var pResult2:TextField; 

    public function Main() 
    { 
     super(); 

     // calling all the functions below 

     // adding my graphics to the display 
     var baseDBase = new PDBase(); 
     this.addChild(base); 
     base.x = -70; 
     base.y = 30; 

     //changing the font format 
     var format:TextFormat = new TextFormat();//adding the object 
     format.size = 14;//font sizing 
     format.align = TextFormatAlign.LEFT;//font align 

     //result text field 
     pResult = new TextField();//adding the object 
     this.addChild(pResult);//displaying the object 
     pResult.border = true;//setting the border 
     pResult.borderColor = 0x30FF00;//setting border color 
     pResult.textColor = 0x000000;//setting the font color 
     pResult.x = 28;//position left or right 
     pResult.y = 70;//position up or down 
     pResult.width = 142;// changing width 
     pResult.height = 20;// changing height 
     pResult.type = TextFieldType.INPUT;//making sure the text area is for input 
     pResult.defaultTextFormat = format;//sets text format to defult 
     pResult.maxChars = 32;//text limit of characters 
     pResult.restrict = "0-9.";//fonts used only 

     pResult2 = new TextField();//adding the object 
     this.addChild(pResult2);//displaying the object 
     pResult2.border = true;//setting the border 
     pResult2.borderColor = 0x30FF00;//setting border color 
     pResult2.textColor = 0x000000;//setting the font color 
     pResult2.x = 28;//position left or right 
     pResult2.y = 96;//position up or down 
     pResult2.width = 142;// changing width 
     pResult2.height = 20;// changing height 
     pResult2.type = TextFieldType.DYNAMIC;//making sure the text area is for input 
     pResult2.defaultTextFormat = format;//sets text format to defult 
     pResult2.maxChars = 32;//text limit of characters 
     pResult2.restrict = "0-9.";//fonts used only 

     var button:Button = new Button("Calculate"); 
     this.addChild(button); 
     button.x = 10; 
     button.y = 130; 
     button.addEventListener(MouseEvent.CLICK, btn_EventListener); 
    } 

    private function btn_EventListener(e:MouseEvent):void 
    { 
     MathUtil.percentToDecimal(percent) 
     this.pResult2.text = percent; 
    } 
} 

public class MathUtil 
{ 

    public function MathUtil() 
    { 
    } 

    public static function percentToDecimal(percentValue:Number):Number 
    { 
     var percent:Number = percentValue * 100; 
     var roundedDecimal:Number = Math.round(percent); 
     var percentResult:String = roundedDecimal; 
     return percentResult; 
    } 
} 

我也收到此错误:

1067: Implicit coercion of a value of type Number to an unrelated type String. On var percentResult:String = roundedDecimal;

+0

看起来你不知道你在这段代码在做什么......所有的 –

+0

首先,其余代码很好。我遇到的一小部分是在底层和Util类。我得到了它的工作原理,并发现我走在了正确的轨道上,但我需要改变一些事情。我会添加代码,只是你可以看到我需要做多少改变。感谢Lukasz推动正确的方向。 – Plextor3009

+0

看到它并不那么需要改变。我以初学者的身份做事,所以这里的大多数人忘记了他们是如何开始的。这可能看起来像我做错了,当我真的不是。 – Plextor3009

回答

0
this.pResult2.text = String(MathUtil.percentToDecimal(percent)); 

请注意,您的函数返回一个值,所以如果你这样做,返回值将是分配给textfield。 “String()”将返回的数字转换为字符串。

编辑: 啊,在这里你可以使用铸造:

var percentResult:String = String(roundedDecimal); 
+0

谢谢,它从Util类中删除了这个错误,但增加了三个新的错误:错误的参数个数。预期1 访问未定义的属性percentResult。 访问未定义的属性百分比。 到MathUtil.percentToDecimal() MathUtil.percentToDecimal(percentResult) \t \t \t this.pResult2.text = MathUtil.percentToDecimal(百分比); – Plextor3009

+0

我只需要解决我在主类私有函数btn_EventListener – Plextor3009