首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

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

2012-03-16 
帮忙改下,哪里出错了?XML codepackage com.fi{public class myClass{public const PI:Number3.1415926//

帮忙改下,哪里出错了?

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()">
[解决办法]
楼上正解。

热点排行