FB中在刚才建的ActionScript项目中新建一个ActionScript class文件,输入下面的代码。
package {
import flash.display.Sprite;
import org.aswing.AsWingManager;
import org.aswing.FlowLayout;
import org.aswing.JButton;
import org.aswing.JFrame;
import org.aswing.JOptionPane;
import org.aswing.event.AWEvent;
public class AsWingTest1 extends Sprite
{
private var myframe:JFrame;
private var mybutton:JButton;
public function AsWingTest1()
{
AsWingManager.initAsStandard(this); //使用aswing程序前调用此方法,该方法封装了一些常用功能
mybutton=new JButton("click me"); //新建一个按钮对象
mybutton.addActionListener(_buttonClicked); //给该对象添加一个按钮监听程序
myframe=new JFrame(this,"My Frame"); //新建一个窗口的组件
myframe.getContentPane().setLayout(new FlowLayout()); //设置其布局方式
myframe.getContentPane().append(mybutton); //调用容器的append方法将刚才的按钮加入到JFrame的容器中
myframe.setSizeWH(300,200);//设置其显示窗口大小
myframe.show(); //设置为可见
}
private function _buttonClicked(e:AWEvent):void {
JOptionPane.showMessageDialog("Hello","hello,world!"); //显示一个消息框
}
}
}
如果是使用Flash CS3,可以先新建一个ActionScript文件,输入代码后,保存为HelloAsWing.as,然后新建一个Flash (ActionScript3.0)文件,将该fla文件保存在与HelloAsWing.as的同一级目录中,然后将fla的文档类设置为 HelloAsWing。
运行后可以看到类似这样的界面,你可以试着对该窗口进行各种操作。
使用AsWing,主程序不需要基于任何应用程序框架,AsWing的UI组件都从flash原生的Sprite扩展而来,所以几乎每一个 AsWing组件都能被单独放到DisplayObjectContainer中并能正常使用。
我们的主程序仅需继承Sprite即可,下面分析一下构造函数中的代码。
AsWingManager.initAsStandard(this);
建议在使用AsWing程序之前先调用这个方法,该方法封装了一些常用功能,调用了AsWingManager
的 setRoot方法,用于设置容纳AsWing组件的容器,这里的this就代表了当前AsWing组件的root。另外还会设置一些系统参数,如 align,scaleMode等。
myButton = new JButton("Click Me");
myButton.addActionListener(__buttonClicked);
JButton 是AsWing中基本的按钮组件,这里新建了一个JButton实例,并设置按钮的Label,第二句代码给按钮添加一个事件监听,当点击按钮后就会触 发,这里的addActionListener
是AsWing设计成简化了 事件监听的写法,当然也可以写成这样 myButton.addEventListener(AWEvent.ACT,
__buttonClicked);。
是AsWing中最基本的事件类,ACT事件类型表示一些基本组件的触发事件类型,如JButton的鼠标点 击事件,JTextField的回车事件等。这里按钮点击后就会执行
AwEvent__buttonClicked
事 件处理函数,函数中代码稍后讨论。
myFrame = new JFrame(this, "My Frame");
myFrame.getContentPane().setLayout(new FlowLayout());
myFrame.getContentPane().append(myButton);
JFrame是常用的窗口组件,有类似操作系统窗口的基本特性,如最小/大化,关闭,缩放,拖动能功能。JFrame的第一个参数指示该窗口所在的 容器,第二个参数设置窗口头部的label(即title)。
getContentPane()
方法获取JFrame容纳其他组件的容 器,向JFrame中添加组件记得不要直接调用JFrame
的append
方法,JFrame 真正容纳其他组件的不是本身,而是其内部的一个容器,用getContentPane()
方法获取。
每个容器排列组件的方式都由Layout控制,setLayout就是设置容器的布局方式,关于布局请参考《AsWing布 局管理入门》。
然后就是调用容器的append方法将刚才的按钮加入到JFrame的容器中。
myFrame.setSizeWH(300, 200);
myFrame.show();
这两句代码就比较简单了,设置JFrame的尺寸,并让JFrame显示出来。可能你发现没有使用addChild方法,没关系,JFrame继承 JPopup,所有基于JPopup的组件,AsWing都会自动替你添加到DisplayList中,调用show() 方法就可以设置为可见。
下面看下很简单的事件处理函数
private function __buttonClicked(e:AWEvent):void {
JOptionPane.showMessageDialog("Hello", "Hello, World!");
}
JOptionPane
是一个类似Alert的组件,showMessageDialog()
方法即显示一个消息框,第一个参数为消息框的 title,第二个参数设置消息内容的字符。
如今基于flashplayer的RIA技术非常流行,要开发这样的应用程序就免不了会用到与用户交互的UI组件,AsWing正是这样一套强大的 组件 库,提供了常用的基本组件,开发者也可能很容易扩展出自己特制的组件。AsWing的灵活使得开发者不会被特定的条件约束,你可以在整个项目中完全使用 AsWing作为GUI交换组件,也可以仅把AsWing的某一个组件用在你的项目中,帮助你快速的得到所需的UI界面。
AsWing的开发者还在不断的改进AsWing,使其更强大,易用。
本文仅介绍了最基本的AsWing使用,其更多强大的性能正等着你来发掘,请参考其他AsWing相关教程。