对于初学学习者和没有深入的爱好者来说可能有这样的问题,那就是怎么在mxml中应用AS文件.也就是说怎么样使MXML文件与AS文件建立联系,很好的在MXML中利用AS中的功能!这里用一个简单的例子来说明一些基础的知识!FLASH中的AS在FLEX中是不能用的,不通用.需要一些简单的修改,当然道理上是一样的!反过来也一样.
Clickometer.as文件
package {
import mx.controls.*;
import mx.core.*;
import flash.events.*;
import flash.utils.*;
public class Clickometer {
private static var lastClickTime:int = 0;
private static var numClicks:int = 0;
private static var grid:DataGrid;
private static var button:Button;
// Program entry point
public static function main ():void {
// Create a button
button = new Button();
button.label = “Click Quickly!”;
button.addEventListener(MouseEvent.CLICK, clickListener);
// Create a data grid
grid = new DataGrid();
grid.dataProvider = new Array();
// Add visual assets to the screen. Application.application is a
// reference to the top-level Flex application, a general container
// for controls and visual assets.
var mxmlApp:Application = Application(Application.application);
mxmlApp.addChild(button);
mxmlApp.addChild(grid);
//注意这里,这是在FLEX中必须的,当然也可以用MXML来代替.
// 真正的开发FLEX应用时是不会有人这么做的,
//都用MXML简单方便的就做到了.这里就是为了尽量少用MXML.最后只用了一句
}
private static function clickListener (e:MouseEvent):void {
var now:int = getTimer();
var elapsed:int = now - lastClickTime;
lastClickTime = now;
numClicks++;
grid.dataProvider.addItem({Clicks: numClicks, “Time (ms)”: elapsed});
}
}
}
MinimalMXML.mxml文件:
<?xml version=”1.0″ encoding=”utf-8″ ?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical” applicationComplete=”Clickometer.main()” />
这里就是没有了就那两句,连</mx:Application>也没有
这里要说的就是applicationComplete=”Clickometer.main()” ,这个是应用程序的入口.
当MXML程序初始化后,就执行Clickometer.main(),也就是执行AS。
所以这也就是触发AS的一个入口!在MXML中用AS也就是用方法(function),可以自由的方便的应用!