在
MXML
文件中实现
ActionScript
逻辑的几种方法:
最简单的方法,在一个
MXML
文件中通过组件的事件直接书写简单的逻辑控制,但是并不推荐。
1.
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
>
2.
<
mx
:
Panel
title
=
'My
Application'
>
3.
<
mx
:
HBox
>
4.
<
mx
:
Label
text
=
'Temperature
in
Farenheit:'
/>
5.
<
mx
:
TextInput
id
=
'farenheit'
width
=
'120'
/>
6.
<
mx
:
Button
label
=
'Convert'
click
=
'celsius.text=(farenheit.text-32)/1.8;'
/>
7.
<
mx
:
Label
text
=
'Temperature
in
Celsius:'
/>
8.
<
mx
:
Label
id
=
'celsius'
width
=
'120'
fontSize
=
'48'
/>
9.
</
mx
:
HBox
>
10.
</
mx
:
Panel
>
11.
</
mx
:
Application
>
第二种,在
MXML
文件中定义函数调用,比较适合简单的应用,如
1.
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
>
2.
<
mx
:
Script
>
3.
<![
CDATA
[
4.
function
calculate
()
{
5.
celsius
.
text
=(
farenheit
.
text
-
32
)/
1.8
;
6.
}
7.
]]>
8.
</
mx
:
Script
>
9.
<
mx
:
Panel
title
=
'My
Application'
>
10.
<
mx
:
HBox
>
11.
<
mx
:
Label
text
=
'Temperature
in
Farenheit:'
/>
12.
<
mx
:
TextInput
id
=
'farenheit'
width
=
'120'
/>
13.
<
mx
:
Button
label
=
'Convert'
click
=
'calculate();'
/>
14.
<
mx
:
Label
text
=
'Temperature
in
Celsius:'
/>
15.
<
mx
:
Label
id
=
'celsius'
width
=
'120'
fontSize
=
'48'
/>
16.
</
mx
:
HBox
>
17.
</
mx
:
Panel
>
18.
</
mx
:
Application
>
第三种,把
MXML
文件和脚本文件分开,便于项目管理
1.
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
>
2.
<!--
Specify
the
ActionScript
file
containing
the
function.
-->
3.
<
mx
:
Script
source
=
'sample3script.as'
/>
4.
<
mx
:
Panel
title
=
'My
Application'
>
5.
<
mx
:
HBox
>
6.
<
mx
:
Label
text
=
'Temperature
in
Farenheit:'
/>
7.
<
mx
:
TextInput
id
=
'farenheit'
width
=
'120'
/>
8.
<
mx
:
Button
label
=
'Convert'
click
=
'calculate();'
/>
9.
<
mx
:
Label
text
=
'Temperature
in
Celsius:'
/>
10.
<
mx
:
Label
id
=
'celsius'
width
=
'120'
fontSize
=
'48'
/>
11.
</
mx
:
HBox
>
12.
</
mx
:
Panel
>
13.
</
mx
:
Application
>
sample.as
文件代码如下
function
calculate
()
{
2.
celsius
.
text
=(
farenheit
.
text
-
32
)/
1.8
;
3.
}
第四种,使用
MXML
组件方式,更好的封装实现。下面的例子定义了一个
tempConverter
组件
1.
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
2.
initialize
=
'converter.setupListener()'
>
3.
<
local
:
TempConverter
id
=
'converter'
xmlns
:
local
=
'*'
/>
4.
<
mx
:
Panel
title
=
'My
Application'
>
5.
<
mx
:
HBox
>
6.
<
mx
:
Label
text
=
'Temperature
in
Farenheit:'
/>
7.
<
mx
:
TextInput
id
=
'farenheit'
width
=
'120'
/>
8.
<
mx
:
Button
id
=
'myButton'
label
=
'Convert'
/>
9.
<
mx
:
Label
text
=
'Temperature
in
Celsius:'
/>
10.
<
mx
:
Label
id
=
'celsius'
width
=
'120'
fontSize
=
'24'
/>
11.
</
mx
:
HBox
>
12.
</
mx
:
Panel
>
13.
</
mx
:
Application
>
TempConverter.as
文件代码如下:
1.
class
TempConverter
implements
mx
.
core
.
MXMLObject
{
2.
public
var
view
;
3.
function
initialized
(
doc
:
Object
,
id
:
String
)
:
Void
{
4.
view
=
doc
;
5.
}
6.
function
setupListener
()
:
Void
{
7.
view
.
myButton
.
addEventListener
(
'click'
,
this
);
8.
}
9.
function
click
(
event
)
{
10.
view
.
celsius
.
text
=(
view
.
farenheit
.
text
-
32
)/
1.8
;
11.
}
12.
}
posted on 2007-01-12 12:01
☜♥☞MengChuChen 阅读(273)
评论(0) 编辑 收藏 所属分类:
flex2.0