读书人

帮忙改下哪里出错了?该如何解决

发布时间: 2012-03-16 16:34:56 作者: rapoo

帮忙改下,哪里出错了?

XML code
package com.fi{    public class myClass    {        public const PI:Number=3.1415926;        //        public function myClass()//        {//        }                public function CalArea(r:Number):Number        {            return PI*r*r;        }    }}

定义的一个类。。
XML code
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" borderColor="#2A8CD1" themeColor="#DD2709" backgroundGradientAlphas="[0.63, 0.12]" backgroundGradientColors="[#78E50E, #1722B5]" viewSourceURL="srcview/index.html">    <mx:Script>        <![CDATA[            import com.fi.myClass;            var AreaResult:Number=0;            AreaResult = myClass.CalArea(10.3);            myTextArea.text = AreaResult.toString();                    ]]>    </mx:Script>        <mx:TextArea id="myTextArea"  x="232" y="135"/></mx:Application>

1061: 调用可能未定义的方法 CalArea (通过 static 类型 Class 引用)。
1120: 访问的属性 AreaResult 未定义。
1120: 访问的属性 AreaResult 未定义。
1120: 访问的属性 myTextArea 未定义。

编译器提示这里错了,怎么改呢?初学Flex。。。
谢谢大家了

[解决办法]
public static function CalArea(r:Number):Number
{
return PI*r*r;
}

没有这个关键字,你就不能通过类名调用方法,除非var myC:myClass = new myClass();myC.CalArea(...);

[解决办法]
还有
AreaResult = myClass.CalArea(10.3);
myTextArea.text = AreaResult.toString();

这句话写在一个方法中,如:
private function init():void{
AreaResult = myClass.CalArea(10.3);
myTextArea.text = AreaResult.toString();
}

然后把该方法关联到Application的creationComplete事件上<mx:Application ..... creationComplete="init()">
[解决办法]
楼上正解。

读书人网 >flex

热点推荐