既然是python社区,大家应该对Django都比较熟悉,我就不多提了。它是一个提供快速开发web框架。
Flash 与 Django 的关系
因为Django不涉及前端,而只提供后台服务。Flash也同样,只需要处理前端,并与后台通迅。它们之间通过AMF-RPC的中间件方式直接调
用。
AMF-RPC是使用AMF数据格式实现的远程方法调用,它是一个应用程序服务器网关,在Flash应用程序和远程服务之间提供一个相互通迅的网络通
道,在这个通道之间舆的是AMF格式的数据。它可以对数据类型自动转换,可以转换成ActionScript代码数据类型,也可以转成服务器程序数据类
型。AMF是一个二进制格式,将Flash程序和后台服务之间的通迅信息序列化,传输速度非常快。
安装环境
先装好Django
然后装上djangoamf-x.x.zip 的模块,这个一个日本人写的。完全由python写的,更新速度还挺快,就是文档还比较少。
这儿是网址
http://djangoamf.sourceforge.jp/index.php?UserManual_en
创建Django的Flash RIA应用
在settings.py中加上'amf.django.middleware.AMFMiddleware',
例:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'amf.django.middleware.AMFMiddleware',
)
再加上几个变量设置:
AMF_GATEWAY_PATH = '/gateway/'
AMF_LOG_LEVEL = 'INFO'
AMF_LOG_FILE = '/path/to/log.txt' #这个路径改成实际路径
AMF_LOG_FILE_ENCODING = 'utf8'
AMF_LOG_FILE_MODE = 'a'
然后在views.py中加上需要调用的服务函数, 如sendback
最后在Flash的ActionScript中调用服务。
import remoting.*;
import flash.net.Responder;
var gatewayUrl:String = "http://127.0.0.1/gateway/";
var serviceName:String = "calculateService";
var serviceFactory:ServiceFactory =
ServiceFactory.getInstance(gatewayUrl);
var service:RemotingService = serviceFactory.getService(serviceName);
//trace(service);
send_btn.addEventListener(MouseEvent.MOUSE_UP, clickHandler);
function clickHandler(event:MouseEvent):void {
var backValue:PendingCall = service.sendback(send_txt.text); #这个是在
views.py中定义的函数
backValue.responder = new Responder(handleResult, handleError);
}
function handleResult(ResultEvent:String):void {
back_txt.text = ResultEvent;
}
function handleError(result:int):void {
back_txt.text = "handleError is " + String(result);
}
stop();
我做了一个例子,在Flash端直接输入python语句,然后直接在Flash端就可以看到服务器端返回的结果。
比如在服务器端输入
a = 5
b = 6
a + b
结果为
5
6
11
这个例子可以用于调试服务器端的程序,直接查询设置服务器端的全局变量,或者执行另一个函数,import 另一个模块。
例子
http://bbs.chinaunix.net/attachment.php?aid=212016
--
'''Time is unimportant, only life important!
过程改进的目标不是高品质产品,而是促生靠谱的人的组织!
'''http://zoomquiet.org
blog @ http://blog.zoomquiet.org/pyblosxom/
wiki @ http://wiki.woodpecker.org.cn/moin/ZoomQuiet
scrap @ http://floss.zoomquiet.org
share @ http://share.zoomquiet.org
douban@ http://www.douban.com/people/zoomq/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
Pls. usage 7-zip to replace WinRAR/WinZip. http://7-zip.org
You can get the truely Freedom 4 software.
关于Flash和AJAX,有人一定会觉得互不相关。其实不尽然,网页可容纳的东西很多,Flash只是其中的一个插件。它可以和AJAX互相取长补
短。AJAX主要的控制部分就是jsp,Flash调用jsp和被jsp调用非常方便。采用绑定事件的方法,方便而且效率高。
我在wiki.woodpecker申请了一块小地方,但是没有权限编辑,希望Zoom Quiet 能帮我开通。http://
wiki.woodpecker.org.cn/moin/Azureon?
action=edit&template=HomepageTemplate
我想写些教程。
如python与Flash的结合
分别用wxpython和pythonwin创建Flash界面的应用程序。
在python和Flash中绑定事件,互相调用。
django与Flash的结合
通过Flash AMF-RPC实现django与Flash和AJAX的互相融合。
我再补充一些资料
http://simonf.com/amfpython/
这儿主要讲的是Open source Perl and Python implementation of Macromedia's AMF
protocol
On 9月4日, 上午9时35分, "Arui Zen" <dujun...@gmail.com> wrote:
> 正好看到9月的程序员上有一篇《在应用中嵌入Flex UI》的文章(英文
> :http://www.artima.com/weblogs/viewpost.jsp?thread=208528<http://www.artima.com/weblogs/viewpost.jsp?thread=208528>),很感兴趣,希望这位兄弟多多分享心得
> .
>
> 在07-9-3,Azureon <azureon.netsp...@gmail.com> 写道:
>
>
>
> > 发得有些仓促,有些地方写得少文缺字。
> > 只是觉得网上研究Django+Flash的人太少了,资料也少。所以发些自己的心得,希望大家有兴趣一起研究。
>
> > 关于Flash和AJAX,有人一定会觉得互不相关。其实不尽然,网页可容纳的东西很多,Flash只是其中的一个插件。它可以和AJAX互相取长补
> > 短。AJAX主要的控制部分就是jsp,Flash调用jsp和被jsp调用非常方便。采用绑定事件的方法,方便而且效率高。
>
> --
>
> DJ
On 9月4日, 上午11时53分, Azureon <azureon.netsp...@gmail.com> wrote:
> 谢谢,我也是才研究这个的。
>
> 我在wiki.woodpecker申请了一块小地方,但是没有权限编辑,希望Zoom Quiet 能帮我开通。http://
> wiki.woodpecker.org.cn/moin/Azureon?
> action=edit&template=HomepageTemplate
>
> 我想写些教程。
> 如python与Flash的结合
> 分别用wxpython和pythonwin创建Flash界面的应用程序。
> 在python和Flash中绑定事件,互相调用。
>
> django与Flash的结合
> 通过Flash AMF-RPC实现django与Flash和AJAX的互相融合。
>
> 我再补充一些资料http://simonf.com/amfpython/
Flex是作为Java应用程序服务器的模块形式存在的,用来解析MXML文件生成SWF文件.
至少需要了解两种语言才能开发Flex应用程序:MXML和ActionScript。MXML是一种XML标记语言,主要用来设置Flex的用户界
面,还包括一些不可见的元素,例如访问数据源、数据绑定等。
MXML和HTML最大的区别之一是MXML页面会被服务器编译成SWF文件,并通过FlashPlayer播放,提供了更强和更丰富的动态用户界
面。
你可以在一个或多个文件中编写MXML应用程序,MXML支持定义的组件,这些组件可以是MXML文件、AS文件或者使用FlashMX2004创建的
文件。在一些MXML标记中,可以包含对外部文件的引用。例如,你可以通过<mx:Script>标记的source属性来包含一个外部的AS脚本文
件。
我对ActionScript还比较熟悉,但是没用过MXML。看了一些介绍感觉它是想把html的功能整和在其中。
On 9月4日, 下午12时43分, fireflyc <firef...@gmail.com> wrote:
> Flash的用途应该是重在"动画"如果是富用户界面的话~~~adobe的另一个东西能用flex。
我感觉要富用户界面也不能太绝对,不能完全抛弃html。我们得分清Flash的优势和缺点。
这儿引用一位台湾朋友luar的看法:
Flash一直强调自己展示能力,可惜这又正正曝露出它天生致命点,文本(Text)处理能力不快不方便,我不会说它不强,它可以Embed
Font,Flash 8更可以控制Leading Kerning等,可惜它很慢,而且不方便使用者!文字根本是HTML天生原素,在Browser
里可以自由快速地滚动浏览,自由选取,更可以随便让使用者控制字体大小。在美工主导下的Flash字体,非常细小难于阅读,大量文字滚动起来又慢又吃力
(我以前批评过Flash Paper)。另一方面,HTML文字可以随Browser大小自由换行,Flash里又花费大量功
夫。Localization上,HTML有很多方法,例如套用不同Template代表不同语言版本等,文字因为储存在纯文本文件,可以给翻译容易处
理。在Flash里,又是另一个使人头痛问题,抽出来放在XML里?Dynamic TextField会失去美丽字体!结果又要花费美工复制多个
FLA语言版本,将来维护上又是一个极大烦恼。
在一些搜索页面上,经常要显示大量文字/图文夹杂搜寻资料时:
Flash就显得软弱无力,用DataGrid?它慢得可怕,又非常难Hack,CellRenderer不是一般开发者懂得。对于这样数据,要先搅清
楚它们是Tabular Data还是只需要Tabular Format,前者需要一个DataGrid形式显示,因为DataGrid可以用
Columns排序、做分页等。Tabular Format只不过在HTML上,用Table排列出,在Flash里用
duplicateMovieClip或者Flex的mx:Repeater。HTML Table列出,ScrollBar由Browser负责,快
速而方便;在Flash里则要自制ScrollBar,慢和不方便。
也许个人有个人的看法,用户有用户的体验。Adobe也不是吃干饭的,一定会有更好的解决方法。
我很愿意和朋友们一起讨论这些应用,大家互相学习。
> > > DJ- 隐藏被引用文字 -
>
> - 显示引用的文字 -
> 我想写些教程。
排列欢迎哪!!
不过,建议使用专门文章名,
类似 http://wiki.woodpecker.org.cn/moin/DjangoFlash
> 如python与Flash的结合
> 分别用wxpython和pythonwin创建Flash界面的应用程序。
> 在python和Flash中绑定事件,互相调用。
>
> django与Flash的结合
> 通过Flash AMF-RPC实现django与Flash和AJAX的互相融合。
>
> 我再补充一些资料
> http://simonf.com/amfpython/
> 这儿主要讲的是Open source Perl and Python implementation of Macromedia's AMF
> protocol
>
> On 9月4日, 上午9时35分, "Arui Zen" <dujun...@gmail.com> wrote:
> > 正好看到9月的程序员上有一篇《在应用中嵌入Flex UI》的文章(英文
> > :http://www.artima.com/weblogs/viewpost.jsp?thread=208528<http://www.artima.com/weblogs/viewpost.jsp?thread=208528>),很感兴趣,希望这位兄弟多多分享心得
> > .
> >
> > 在07-9-3,Azureon <azureon.netsp...@gmail.com> 写道:
> >
> >
> >
> > > 发得有些仓促,有些地方写得少文缺字。
> > > 只是觉得网上研究Django+Flash的人太少了,资料也少。所以发些自己的心得,希望大家有兴趣一起研究。
> >
> > > 关于Flash和AJAX,有人一定会觉得互不相关。其实不尽然,网页可容纳的东西很多,Flash只是其中的一个插件。它可以和AJAX互相取长补
> > > 短。AJAX主要的控制部分就是jsp,Flash调用jsp和被jsp调用非常方便。采用绑定事件的方法,方便而且效率高。
> >
> > --
> >
> > DJ
>
> >
>
> 我的wiki主页是http://wiki.woodpecker.org.cn/moin/Azureon
> 谢谢 Zoom Quiet
>
> >
>
djangoAMF也可以用于Flex上,毕竟swf文件、ActionScript都是一样的。djangoAMF的作者写的例子就用的是Flex。
里面既有MXML又有HTML,既有javascript又有ActionScript,还有django的模板和SQL,融和了很多东西。
有兴趣的话大家一起学习。
> > > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -