由于avm版本的问题,flex3无法直接调用flash做的swf文件,弄了一天,最后终于想到了一个办法,将LocalConnect和flex调用as3两种方式攒在了一起,算是暂时把这个问题解决了!
存起来,留着以后修改
第一步:用flash做一个as2的文件
我在里面添加了一个按钮
在第一帧写下面的代码
mybtn.onRelease=function()
{
var caller:LocalConnection=new LocalConnection();
caller.send("as_server","testAs3",this._name);//this._name为第二步中创建的swf里testAs3的参数
}
第二步:创建一个flash做的as3的文件,包含一个名为lab的label
添加下面的代码
var server:LocalConnection = new LocalConnection();
server.connect("as_server");
server.client = this;
function testAs3(msg:String):void{
lab.text=msg;
app.appshowtext(lab.text);
}
var app:Object;
function swfshowtext(str:String):void{
lab.text=str;
}
function setApp(ap:Object):void{
this.app=ap;
}
function testAs31(msg:String,str:String):void{
lab.text=msg+str;
app.appshowtext(lab.text);
} ......
作为一个不入流的flex开发人员总结一下不入流的感悟。
我一定要记住,as中的变量的作用范围只有两种,function和class,所以要想用闭包就需要一个createFunction的东西才行,不要妄想在for循环中用闭包了。看了一下as3的参考,发现它的前世和lua还真像,as3的继承其实还是prototype来做的,就是lua的元表了,但是as3的代码看起来很像java了,lua会不会也披上OO这个羊皮呢?as3对prototype做了优化,它有static object这一说,不能动态添加属性了,好像在朝着脱离脚本语言的方向发展了。as3的正则和lua的也像。as3的类型算多了,强类型的语言。
在flex的xml解析中,如果是用object,那么如果一个节点只有一个元素就不是数组了,这个是猫腻,导致遍历的时候不能用for了,只好改用xmlList.flex和AJAX在服务器访问上很接近了, flex可以支持socket连接,这个算不错了。
做界面的时候,数据绑定这个还是很管用的,再加上repeater控件,可以消除大部分的循环遍历了。flex做客户端还是很方便的。对网页游戏的架构很感兴趣,还没找到可靠的资料。
会不会有一天java的客户端应用被flash彻底代替?看起来java没有任何优势。 ......
ActionScript 3.0 语言和组件参考
Foundation ActionoScript3.0 动画
Learning Flex3
AS3 Cheat Sheets
Flex Frameword Diagram
Rich Internet Applications With Adobe Flex & Java
Actionscript3.0编程
ActionScript3.0 Cookbook
ActionScript3.0 Cookbook中文版
......
这几天要学一下flex开发,但是安装的是eclipse插件版的,可是安装好后发现没有可视化的编辑视图,最后发现其实是因为flex的mxml文件的打开方式是使用的spket编辑器打开的,所以没有可视化编辑视图,于是吧spket卸载了。就好了。记录一下,希望能帮到别人,也让自己记住 ......
假设父窗口是p,子窗口是c,子窗口进行操作后返回父窗口
父窗口:
var flag:Boolean = false;
var c:pop = pop(PopUpManager.createPopUp(this,pop,false)); // 新建子窗体对象
c.callFunction = this.fresh; // 子窗体中可以调用的父窗体函数(这里是子窗体关闭时,用来刷新父窗体的内容
function fresh():void
{
flag = true;
trace(flag);
}
子窗口 pop类:
public var callFunction:Function;//回调函数
//关闭弹出窗口
function doClose():void
{
PopUpManager.removePopUp(this);
callFunction.call(parent);// 调用父窗体的刷新函数
} ......
学flex就是为了跳槽,万恶的公司,年底什么都没有,害的我都没钱回家,杯具啊。
学flex已经有一段时间了,我是java程序员,欢迎大家交流
最近学了点cairngorm 感觉用起来比struts繁琐一点,废话少说,上代码:
1.先看vo,本实例是一个添加联系人的小例子,名字,邮箱,添加时间三个属性,都是搞 java的,刘若英说了 ,你知道,我知道
package adobe.vo
{
import com.adobe.cairngorm.vo.ValueObject;
public class ContactVO implements ValueObject
{
public function ContactVO()
{
}
public var fullName:String;
public var email:String;
public var addContactDate:String;
}
}
2.接下来就mvc吧,cairngorm 几个主要的组件 :
modellocator (其实就是一个全局的容器,把你需要保存的数据放里边)
command (这个是boss,负责把数据加入到modellocator中,还可以有一个代理,必要的话,和数据库交流交流)
frontControl ( 我说就是一个监听器,江湖上有事了他都去报告掌门人(command))
cairngormEvent (自定义事件 没什么好说滴)
代码上 ......