Flex调用swf内方法
2010-03-27 11:54
381 查看
原文见:http://blog.csdn.net/genius840215/archive/2010/03/25/5411732.aspx
一般我们生成的swf有3种,一种是Flex mxml主应用编译得到,第2种类是用Flex
SDK编译as类得到,还有一个就是fla在Flash CS3内运行生成。
因为第3种的调用方法同第2种,这里就说明前2种swf在Flex项目内的应用。
HelloWorld1.mxml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
mx:Application
xmlns:mx
=
"http://www.adobe.com/2006/mxml"
layout
=
"absolute"
>
<
mx:Script
>
<!--[CDATA[
public function sayHello():void{
trace("HelloWorld from mxml");
}
]]-->
</
mx:Script
>
</
mx:Application
>
HelloWorld2.as
package
{
public
class
HellowWorld2{
public
function
sayHello():
void
{
trace("HelloWorld from AS"
);
}
}
}
app.mxml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
mx:Application
xmlns:mx
=
"http://www.adobe.com/2006/mxml"
layout
=
"absolute"
>
<
mx:Script
>
<!--[CDATA[
public function CompleteHandler1(evt:Event):void{
Object(evt.target.content.application).sayHello();
}
public function CompleteHandler1(evt:Event):void{
Object(evt.target.content).sayHello();
}
]]-->
</
mx:Script
>
<
SWFLoader
id
=
"hw1"
source
=
"HelloWorld1.swf"
complete
=
"CompleteHandler1(event)"
/>
<
SWFLoader
id
=
"hw2"
source
=
"HelloWorld2.swf"
complete
=
"CompleteHandler2(event)"
/>
</
mx:Application
>
HelloWorld1.mxml和HelloWorld2.as分别用Flex SDK编译成swf,然后在app.mxml内调试。
可以看出第一种情况生成的swf因为是通过mxml生成的,e.target.content其实是一个SystemManager类对象,必须要
通过它的application才能访问swf内部方法,而用as类直接生成的swf通过e.target.content就能直接访问。
一般我们生成的swf有3种,一种是Flex mxml主应用编译得到,第2种类是用Flex
SDK编译as类得到,还有一个就是fla在Flash CS3内运行生成。
因为第3种的调用方法同第2种,这里就说明前2种swf在Flex项目内的应用。
HelloWorld1.mxml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
mx:Application
xmlns:mx
=
"http://www.adobe.com/2006/mxml"
layout
=
"absolute"
>
<
mx:Script
>
<!--[CDATA[
public function sayHello():void{
trace("HelloWorld from mxml");
}
]]-->
</
mx:Script
>
</
mx:Application
>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" > <mx:Script> <!--[CDATA[ public function sayHello():void{ trace("HelloWorld from mxml"); } ]]--> </mx:Script> </mx:Application>
HelloWorld2.as
package
{
public
class
HellowWorld2{
public
function
sayHello():
void
{
trace("HelloWorld from AS"
);
}
}
}
package{ public class HellowWorld2{ public function sayHello():void{ trace("HelloWorld from AS"); } } }
app.mxml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
mx:Application
xmlns:mx
=
"http://www.adobe.com/2006/mxml"
layout
=
"absolute"
>
<
mx:Script
>
<!--[CDATA[
public function CompleteHandler1(evt:Event):void{
Object(evt.target.content.application).sayHello();
}
public function CompleteHandler1(evt:Event):void{
Object(evt.target.content).sayHello();
}
]]-->
</
mx:Script
>
<
SWFLoader
id
=
"hw1"
source
=
"HelloWorld1.swf"
complete
=
"CompleteHandler1(event)"
/>
<
SWFLoader
id
=
"hw2"
source
=
"HelloWorld2.swf"
complete
=
"CompleteHandler2(event)"
/>
</
mx:Application
>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" > <mx:Script> <!--[CDATA[ public function CompleteHandler1(evt:Event):void{ Object(evt.target.content.application).sayHello(); } public function CompleteHandler1(evt:Event):void{ Object(evt.target.content).sayHello(); } ]]--> </mx:Script> <SWFLoader id="hw1" source="HelloWorld1.swf" complete="CompleteHandler1(event)"/> <SWFLoader id="hw2" source="HelloWorld2.swf" complete="CompleteHandler2(event)"/> </mx:Application>
HelloWorld1.mxml和HelloWorld2.as分别用Flex SDK编译成swf,然后在app.mxml内调试。
可以看出第一种情况生成的swf因为是通过mxml生成的,e.target.content其实是一个SystemManager类对象,必须要
通过它的application才能访问swf内部方法,而用as类直接生成的swf通过e.target.content就能直接访问。
相关文章推荐
- 【FLEX教程】#007 如何让JS调用SWF里的方法
- Flex调用swf内方法
- jsp嵌入flex swf 和flex调用js方法
- Flex调用swf内方法
- Flex调用swf内方法
- flex 打开外部的swf 并调用其方法
- (转)flex中DataGrid中itemRenderer的button的click调用方法问题
- SWFLoader加载swf,并且调用其方法
- 使用swfobject.js调用flash,使flash背景透明的方法
- 一个remoteobject调用多个java方法(Flex)
- flex air应用程序在windows环境下调用外部exe程序的一种方法
- Flex中实时动态加载(图像swf)皮肤的方法
- js调用flex中as方法
- FLEX调用外部SWF的函数
- about _页面调用单个swf 文件,嵌套出多个方法。
- jsp如何调用flex function方法
- FLEX _HTTPService的调用方法
- flex的remoteobject方式调用java的方法
- Flex一个RemoteObject调用JAVA对象里面的多个方法(转)
- FLEX中使用itemRenderer调用父页面的方法使用关键字outerDocument