文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Flash/Flex学习笔记(3):动态添加组件

Flash/Flex学习笔记(3):动态添加组件

时间:2010-11-22  来源:模西的哥哥

可参考以下图操作:

注:
1.as文件的类名与文件名要求一样,并且默认情况下必须与fla处于同一目录。
2.所有as文件必须继承自flash.display.Sprite

下面这个是一个示例文件代码:

view source

print?

01
package {

02

03
import flash.display.Sprite;

04
import fl.controls.Label;

05
import fl.controls.Button;  

06
import fl.controls.List;

07
import flash.text.TextFieldAutoSize;

08
import flash.events.MouseEvent;

09
import fl.data.DataProvider;

10

11
public class AddControlCode extends Sprite {

12
public function AddControlCode() {

13

14
//加一个label

15
var _label:Label = new Label();

16
_label.text="来来,我是一个Label";

17
_label.width=150;

18
_label.autoSize=TextFieldAutoSize.CENTER;

19
_label.addEventListener(MouseEvent.CLICK,function(){trace(_label.text = "文本被点击了")}); //象不象c#中的匿名函数?

20
this.addChild(_label);

21

22
//加一个Button

23
var _btn:Button = new Button();

24
_btn.label="来来,我是一个Button";

25
_btn.width=150;

26
this.addChild(_btn);

27

28
//获取舞台尺寸

29
var w:int=stage.stageWidth;

30
var h:int=stage.stageHeight;

31

32
trace("宽度:" + w + ",高度:" + h);

33

34
//将Label与Button移动到水平中心点

35
_label.move((w-_label.width)/2,10);

36
_btn.move((w-_btn.width)/2,50);

37

38
_btn.addEventListener(MouseEvent.CLICK,btnClick);//给Button添加点击事件

39

40
//添加一个List控件

41
var _lst:List = new List();

42
var dp:Array = new Array();

43
var i:uint;

44
var count:uint = _lst.rowCount * 2;

45
for(i=0;i<count;i++){

46
dp.push({label:"元素" + i});

47
}

48
_lst.allowMultipleSelection = true;//允许多选

49
_lst.dataProvider = new DataProvider(dp);//绑定数据源

50
this.addChild(_lst);

51
}

52

53
//鼠标点击处理函数

54
function btnClick(e:MouseEvent) {

55
trace("你点了我一下,这是证据:" + e);

56
}

57
}

58
}

默认情况下,如果您运行这段代码会发现根本没办法编译通过,通常会提示: 未发现fl.controls.Label之类,解决办法:

先在设计视图中,拖一个Label控件到舞台上,然后再删除就行了,其它组件类似处理

个人猜测:就好比Winform中,我们引用某命名空间时,通常光using ...后,还需要添加对某程序集的引用,类似的:fla默认可能没有添加fl.controls.Label的"程序集"引用,哪怕你在代码中import过了,但是运行时仍然找不到这个包,而手动拖一个到舞台上后,强迫flash自动添加了相关引用

最后一个问题:如果组件不全是动态添加的,比如在设计视图下直接把一个Label拖动舞台上,在对应的as文件中如何引用呢?

其实也很简单,只要在设计视图中给组件指定一个实例名(比如lbl123),然后就能在as文件中直接用lbl123.text = "..."来使用了

运行截图:

相关阅读 更多 +
排行榜 更多 +
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载