上海宏睿信息科技有限公司是一家致力于分布式系统和FlashRIA开发的高科技公司,依托上海交通大学强大的科研力量和上海市科委的支持,成立四年以来取得了快速的发展。
目前公司正在运作一个具备高度前瞻性的FlashRIA项目,其主要功能是实现在线的多媒体协同创作。该项目是一个结合Flash和Java技术的平台,依靠公司长期以来在分布式计算上的优势,我们的一个核心团队专门负责和推动开源项目Red5(http://osflash.org/red5)的核心研发。而在前台的展现层面,我们也实现自己的渲染框架,因此我们迫切希望更多具备Flash开发经验的人才加入我们一起发展!
招聘条件如下:
1. 具备高度的责任心及团队精神,愿意接受挑战性的工作,能够及时高效完成任务;
2. 熟悉Flash Action Script程序设计并且熟悉至少一门其它面向对象开发语言;
3. 对Flash RIA开发感兴趣,熟悉Flash组件开发,并有相关项目经验者优先;
4. 熟悉Photoshop等图形编辑工具,并有一定美术基础者优先;
5. 熟悉AJAX等其他RIA开发工具者优先;
6. 1年以上OO编码经验、1年以上AS编码经验,基础扎实学习能力强者亦可。
7. 工作地点:上海,薪资面议
联系方式如下:
MSN:whbapp@hotmail.com
Mail: hanbo.wang@gmail.com
再次欢迎有志于RIA开发的同道加入我们公司!
fscommand()、CallFrame() 和 CallLabel() 方法相似,但它更灵活、更通用。推荐对 JavaScript 和 ActionScript 之间的通讯使用 ExternalInterface。addCallback(methodName:String, instance:Object, method:Function) : Boolean//将 ActionScript 方法注册为可从容器调用。
call(methodName:String, [parameter1:Object]) : Object//调用由 Flash Player 容器公开的函数,传递零个或多个参数。
使用时必须在发布设置中把Player设为8.0.
Flash调用Javascript方法:
Flash中:import flash.external.ExternalInterface;//导入类
ExternalInterface.call("ExtFunc");//调用外部的ExtFunc方法
Html中:
<script language="javascript">
function ExtFunc(){
alert(123)
}</script>
可以测试一下了.
从容器调用Flash中公开的方法:
Flash中:import flash.external.ExternalInterface;//导入类function test() {
test_txt.text = "123";
}
ExternalInterface.addCallback("forjstest", null, test);
Html中:
<script language="javascript">
function callBack() {
thisMovie("calExt").forjstest();
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}</script>
<button onClick="callBack()">Test</button>
在Flash所在的Object标签中,把id设为id="calExt".点Test可以测试一下.
注意:因为安全设置的问题,测试需要在localhost中进行.
附上源文件一份.
http://www.2solo.net/upload/blogs/CallExt.rar
Egoldy在他的Webstudio上也曾经写过相应的教程.大家也可以看一下.
第一步:通过使用SQL Server Configuration Manager,按照"Start -> All Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> SQL Server Configuration Manager"激活TCP/IP应用
如果你有防火墙,那么设置允许 SQL Server 的端口.
在激活了TCP/IP协议以后,你需要检查一下SQL Server的端口.打开SQL Server Configuration Manager,右击TCP/IP打开属性查看IP Address中的IPAll部分.在把数据库注册到Coldfusion的时候,你是需要定义端口的.
基本的配置就入下了.如果你碰有了Unicode的问题,查看下这里吧
]]>你可以通过Adobe的Breeze Central来查看讲稿,并从他的Blog上找到范例下载
内容包括;
如果需要运行的话,可以选择使用Flex Builder 2
]]>Event Bubbling (事件浮升机制)
ok,我姑且这么称呼Event Bubbling吧.原来Ralf在自己的Blog上发表了在As2.0中使用Event Bubbling的方法.实在是个有创意的想法.
Event Bubbling原本是只能在AS3.0中使用的.在Event Bubbling机制里面,产生事件的对象首先会收到事件。然后,事件会依照对象的等级结构向上传播.那么简单的说在Flash中的使用Event Bubbling则是使处理嵌套的MC显得简单很多.Event Bubbling的使用主要便是很好的加强了事件处理的连续性.
Ralf的方案是用自己的方法来替换dispatch的方法,下面这段方法是Ralf的一个范例,你也可以自己修改:
| 以下是代码片段: public static initializeBubbling(dispatcher:MovieClip){ var parentDispatcher = dispatcher._parent; //add traversal optionally, see comments below var oldDispatchEvent = dispatcher.dispatchEvent; dispatcher.dispatchEvent = function( evt){ oldDispatchEvent.call( dispatcher, evt); if( evt.bubbles){ parentDispatcher.dispatchEvent( evt); } } } |
更详细的文章,我想还是看原文比较好
同时,Peter Elst也写了一个使用的范例.
比如,当你不使用Event Bubbling时,你需要通过以下的方法来让mc1.mc2广播事件.
| 以下是代码片段: mc1.mc2.addEventListener("someEvent",someEventHandler); |
如果使用Event Bubbling则可以这样.
| 以下是代码片段: mc1.addEventListener("someEvent",someEventHandler); |
由于这样的事件链机制,你就不用担心事件出自哪里了.
| 以下是代码片段: import mx.events.EventDispatcher; // Ralf Bokelberg’s AS2.0 event bubbling workaround initializeBubbling = function(dispatcher:MovieClip) { var parentDispatcher = dispatcher._parent; var oldDispatchEvent = dispatcher.dispatchEvent; dispatcher.dispatchEvent = function( evt){ oldDispatchEvent.call( dispatcher, evt); if( evt.bubbles){ parentDispatcher.dispatchEvent(evt); } } } // create empty movieclips var mc1:MovieClip = createEmptyMovieClip("mc1",1); var mc2:MovieClip = mc1.createEmptyMovieClip("mc2",1); // initialize EventDispatcher EventDispatcher.initialize(mc1); EventDispatcher.initialize(mc1.mc2); // initialize event bubbling initializeBubbling(mc1.mc2); // add event listeners to movieclips mc1.mc2.addEventListener("customEvent",function() { trace("customEvent captured by mc1.mc2"); }); mc1.addEventListener("customEvent",function() { trace("customEvent captured by mc1"); }); // dispatch event mc1.mc2.dispatchEvent({type:"customEvent",bubbles:true}); |
另外的相关文章:
jessewarden:Event Bubbling in Flex 1.5 & ActionScript 3
值得注意的是在Ben Forta的网站上有位叫barry.b的朋友提的一些意见,包括高级的数据流处理,session和应用的复制及管理,对象的串行转换.这些问题都属于核心层面的问题了.并且我也觉得这是妨碍CF取得更好的市场定位的一些技术层面上的主要问题.我想补充的是MVC模式的控制也不够出色.虽然有第三方的FuseBox和Mach-II.但感觉上仍然是弱了点.BTW,我本来能有机会得到一份可以学习Coldfusion高级模式开发的工作,可惜种种原因...仍然只能自学了.无奈.
barry.b对于下一更新版本种的一些功能更新也有自己的看法.
对于考虑内置Ajax架构的想法,他比较反对,认为不同架构的混合可能会产生出一个不伦不类的东西来.不过我觉得虽然Ajax和Flash的架构区别还是比较大的.当然,如果你理解的Ajax只是JS+HttpRequest,那就另当别论了.其实Ajax的开发模式和Flex还是有些类似的,所以以FlashForm的模式来开发Ajax-form,个人觉得还是可行的.
对于考虑Flex和Coldfusion的无缝结合这个观点,barry.b认为应该在一年前推出CF7的时候就这么做了.其实怎么说呢.Adobe Coldfusion team主要考虑的是Flex1.5的结合还是Flex2的结合吧.谁都知道,前者只是个实验作品.而Flex2.0确实已经让我流了好些天的口水了.呵呵......
无论如何,对于加强核心功能的意见我是相当响应的.基础总应该是稳扎稳打的.
好了,YY完毕.
]]>
]]>
Flash Device上说提早发布Player是为了让大家在过节的时候可以享受Flash Lite2开发的游戏.那么好吧,插件和游戏可以看这里了.
]]>