1、主程序文件TestFlex_Flash.mxml源代码:
Mxml代码
<?xml version="1.0"encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute" xmlns:local="*">
//
</mx:Application>
2、TestComponent.mxml源代码
Mxml代码
<?xml version="1.0"encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"width="400" height="300" xmlns:local="*">
<!--下面注释掉的代码就是加载Flash制作的swf的,加载完成后,Flex就可以用swfgame这个对象的content属性表示调用该Flash程序的代码了-->
<!--
</mx:Canvas>
3、非可视组件VisualView.as源代码
package
{
protected var view : Object;
protected var id :String;
public function initialized( document : Object, id : String ) :void
{
this.view = document;
this.id = id;
}
public functionVisualView()
{
}
public functiontestView():void{
Alert.show("调用无视图方法。");
}
Public functioninvokeFlashMethod():void{
}
}
Flash端程序
1、帧里(或者文档类)代码如下
Java代码
import flash.utils.Timer;
import flash.events.TimerEvent;
var flexApp:Object;
function setApp(ap:Object):void {
this.flexApp=ap;
//myC.passFlex(flexApp);
var time:Timer=new Timer(1000,1);
time.start();
time.addEventListener(TimerEvent.TIMER_COMPLETE,toFlex);
}
var myC:MyClass=new MyClass();
//下面这个方法测试调用Flex程序代码的效果,通过下面的四个调用也可以看出Flex代码中各组件的从属关系
function toFlex(eve:TimerEvent){
flexApp.testf();
flexApp.component.testf();
flexApp.component.view.testView();
flexApp.component.parentApplication.parentMethod();
myC.passFlex(flexApp);
}
2、Flash自定义类MyClass类源代码
Java代码
package {
}