1.给datagrid动态添加列
如datagrid的id为dg1,以下代码为其添加列
var col :DataGridColumn = new DataGridColumn(); col.headerText = colhedertext.text; dg1.columns = dg1.columns.concat(col);
2.as中设置itemrender以datagrid为例
a.首先生成渲染器,如
<?xml version="1.0" encoding="utf-8"?> <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true"> 。。。。。。。。。。 </s:MXDataGridItemRenderer>
其类名为:XXRender
b.实现工厂类接口mx.core.IFactory,如
import mx.core.IFactory; public class XXXItemRender implements IFactory { public function VideoItemRender() { } public function newInstance():* { return new XXRender(); } }
实现它的newInstance方法 返回所需ItemRender,在构造此渲染器时会调用newInstance()方法,可在构造函数中传递参数,newInstance中根据参数返回不同的渲染器类型,如
public function ItemRenderFactory(type : String) { this.type = type; } public function newInstance() : * { if (type == "button") { var bt : Button=new Button(); bt.label="test"; return bt; } }
生成button渲染器列.itemRenderer = new XXXItemRender('button');
c.设置itemreder
列.itemRenderer = new XXXItemRender();
3.textArea添加信息后滚动到最后行,如聊天应用中显示聊天内容
v 如:
testArea.htmlText+="/n45665454546456/n/nsdfsdfsdfsdsdff"; testArea.validateNow(); testArea.verticalScrollPosition=t.maxVerticalScrollPosition;
注意validateNow()和verticalScrollPosition的顺序
4.enterframe事件
搞了这么久才知道何为enterframe事件 , 真是不应该啊
api说明引用:播放头进入新帧时调度。 如果播放头不移动,或者只有一帧,则会继续以帧频调度此事件。 系统会对所有侦听此事件的显示对象同时调度此事件。
只有一桢的情况下可代替timer使用。。。。。。以帧频调度此事件
5.匿名方法移除自身的侦听方法
evt.target.removeEventListener(eventtype, arguments.callee);