最近跟后台研究的hessian协议,通信技术和接口已经基本差不多了,开始转战与前台的合作。
前台做的flash元件要能比较方便的在flex里使用,我的思路大致是这样的。比较“死”的东西做成图片,具有一些方法,相对比较活跃的组件做成.swf,然后在flex里用as3来控制,这样比较方便也比较容易变化和修改。
首先flash里制作元件,属性啊方法啊这些名字要沟通好。
在flex里有两种使用方法:
第一种方法是用as3直接使用,通过loader加载.swf,然后显示到程序中。这里有个小技巧,flash做的东西直接addchild到flex的容器里是会出现强制类型转换的,不过有一个例外,就是UIComponent,道理可以参看flex类图的继承关系。
第二种方法是用SWFLoader加载,如果组件比较少我倾向于这种,因为比较懒,也比较容易布局。。。
demo我只做了个控制属性,方法同样是没问题的哈,上代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationPolicy="all" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private var swfurl:String="我的现金.swf";
//创建Loader类的实例
private var context:LoaderContext=new LoaderContext();
private var loader:Loader=new Loader();
private var myUI:UIComponent = new UIComponent();
private var something:Object;
private function init():void
{
this.addChild(myUI);
context.applicationDomain=ApplicationDomain.currentDomain;
//加载外部的swf库 loader.load()的第2个参数 用来确定是否能使用加载的SWF中的库
loader.load(new URLRequest(swfurl), context);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(e:Event):void
{
trace(loader);
something = loader.content;
something.myCash.text = 3000;
myUI.x = 300;
myUI.y = 300;
myUI.addChild(loader);
}
private function cc():void
{
var ss:Object = mm.content;
ss.myCash.text =50000;
}
private function addMoney():void
{
var ss:Object = mm.content;
ss.myCash.text = int(ss.myCash.text) + 10000;
}
]]>
</mx:Script>
<mx:SWFLoader id="mm" source="我的现金.swf" creationComplete="cc()">
</mx:SWFLoader>
<mx:Button x="273" y="10" label="+10000" click="addMoney()"/>
</mx:Application>
更进一步,可以由flash提供一个类库,里面可以有多个元件,来重复使用资源:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init()"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.events.Event;
//
import flash.system.ApplicationDomain;
import flash.utils.getDefinitionByName;
import flash.display.MovieClip;
import flash.system.LoaderContext;
/**
* ...
* @author 齐齐兽
* QQ:649723623
*
* 实现库的重复利用
*/
//库资源的地址
private var myUI:UIComponent = new UIComponent();
private var swfurl:String="element.swf";
//创建Loader类的实例
private var context:LoaderContext=new LoaderContext();
private var loader:Loader=new Loader();
public function init():void
{
//指定为当期域
this.addChild(myUI);
context.applicationDomain=ApplicationDomain.currentDomain;
//加载外部的swf库 loader.load()的第2个参数 用来确定是否能使用加载的SWF中的库
loader.load(new URLRequest(swfurl), context);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(e:Event):void
{
//得到类定义 MCExample aaaa
var className:Class=ApplicationDomain.currentDomain.getDefinition("aaaa") as Class;
//从库中导出资源
var mc:MovieClip=new className();
//放到场景中间
mc.x=275;
mc.y=200;
//添加到显示列表
myUI.addChild(mc);
}
]]>
</mx:Script>
</mx:Application>
附件是第一个Demo的flash元件,放在src目录下即可
分享到:
相关推荐
本例,flash内嵌在flex里,示例了: 1、flash调用flex的函数(方法) 2、flex调用flash的函数(方法)
flex调用flash cs 里方法;flex响应flash的点击事件;flex给flash变量赋值
flex 卸载flash 安装编译版10flash flex 卸载flash 安装编译版10flash
Flex与Flash相互调用。解压后有两个工程目录,一个是flash程序,一个是flex工程。
Flex(Flash)与.net交互教程详解,一步一步教你如何实现FLEX与.net的交互。
flashplayer_10_ax_debug.exe flashplayer_10_ax_debug.exe flashplayer_10_ax_debug.exe
flex、flash及air等ios开发证书(P12格式) 压缩包内含两个文件: ios.p12(ios开发证书) mobileprovision.mobileprovision(配置文件) 用该证书及对应配置文件可以免99刀的Apple developer费用,编译出的ipa...
Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像...
flex 控制鼠标移动的例子
flex iframe 支持在flash中嵌套入html jsp asp php等flex iframe 支持在flash中嵌套入html jsp asp php等flex iframe 支持在flash中嵌套入html jsp asp php等flex iframe 支持在flash中嵌套入html jsp asp php等flex...
flex+flash(Chapter02)flex+flash(Chapter02)flex+flash(Chapter02)flex+flash(Chapter02)
FLEX和Actionscript开发FLASH游戏的中文文档,内容和详细 希望对你有用~
Flex和Flash图片加载条 Flex和Flash图片加载条
一个简单Flex控制SWF播放的范例。 内含一个Flash源码。 Import到Flex Builder就可以了
Flex/flash 无需服务器的P2P源码 实现NAT穿越
flex 和 flash cs5集合的mp3播放器
使用FLEX 和 Actionscript开发FLASH 游戏(一)
flex、flash及air等ios开发证书(P12格式) 压缩包内含三个文件: ios.p12(ios开发证书) mobileprovision.mobileprovision(配置文件) flash ios 设置顺序.doc 是对我们的flash开发ios的一些设置问题 如果 ...
很全面的flex教程,里面的实例也很丰富~~不过是英文的~~