Flex的ActionScript可以按照面向对象的方式创建类,但是有一个需要注意的地方,就是类的重命名,Flex的改名操作不象VS等可以直接修改代码。
我们先创建一个类叫Boy,
创建类当然是通过Flex提供的方式创建啦,这样系统会自动帮我们生成一个叫Boy.as的文件,同时生成一定的默认代码。
我在在文件中加上一些简单的代码方便我们接下来调用,因为是教程,只要达到说明目的即可,所以我们的代码力求简单。
代码如下:
package iLinker
{
import flash.events.Event;
public class Boy
{
public var intAge:int;
public var strName:String;
public function Boy(name:String,age:int)
{
intAge=age;
strName=name;
}
public function GrowUp():void
{
intAge+=1;
}
}
}
然后呢我在一个MXML文件中这样调用:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
<![CDATA[
import iLinker.Boy;
private var oneBoy:Boy;
private function init():void
{
oneBoy=new Boy("peter",10);
txtName.text=oneBoy.strName;
}
]]>
</mx:Script>
<mx:TextInput id="txtName" x="59" y="10"/>
</mx:Application>
能够正常运行,可是突然我觉得这个类的命名方式想改一下,改为Boys,以表达一个复数的概念,于是我直接在Boy.as文件中把代码更改为:
package iLinker
{
import flash.events.Event;
public class Boys
{
public var intAge:int;
public var strName:String;
public function Boys(name:String,age:int)
{
intAge=age;
strName=name;
}
public function GrowUp():void
{
intAge+=1;
}
}
}
当然调用该类的MXML文件中的代码也要更改啦,更改为如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
<![CDATA[
import iLinker.Boys;
private var oneBoy:Boys;
private function init():void
{
oneBoy=new Boys("peter",10);
txtName.text=oneBoy.strName;
}
]]>
</mx:Script>
<mx:Style source="defaults.css"/>
<mx:TextInput id="txtName" x="59" y="10"/>
<mx:Button x="246" y="10" label="长大一岁"/>
<mx:Label x="16" y="12" text="年龄"/>
</mx:Application>
按照其他的开发工具比如VS来说这样更改因该是可以直接编译通过的,但是Flex却提示如下:
那我们怎么在Flex中给类改名呢?使用以下方法:
这样Felx系统会自动帮我们把需要更改的所有代码一次性更改过来,这样是不是比我们自己手工一个个地方更改更容易呢?