openlaszlo学习一

来源:互联网 发布:华云数据 上市 编辑:程序博客网 时间:2024/05/21 17:44

1.    openlaszlo认识

openlaszlo是一种富客户机应用程序架构,使用MacromediaFlash作为部署载体。Openlazlo应用程序开发使用基于xmllzx语言,它可以被编译成dhtml,swf等格式。它依赖javascript来表达逻辑,并提供了传统flash开发方式无法比拟的一些优点,包括高级UI约束系统、面向对象的设计方法学以及内置的对web服务和各种风格的远程过程调用的支持。

Laszlo是它所用的一种语言,这种语言通过说明性方法,用xmljavascript来创建部件或整个应用程序。Laszlo不是通过浏览器在客户端来解释的,而是在服务器端将语言转换成Macromediaflash格式。

优点

  • 提供带有大量动画的用户界面。
  • 轻松地提供能在多种浏览器,包括旧浏览器上显示的标准表示法。
  • 轻松地实现某些类型的应用程序,包括动态建立的应用程序。

部署

ProxiedSolo

Proxied部署方式,可以得到Openlaszlo系统所能提供的所有特性。这是这种部署的一个优点,但是:这了使用这种部署模型,必须的服务器上安装一个OpenlaszloServer环境。这种服务器环境是位于j2ee应用程序或servlet容器之上的一个web应用程序,负责为.lzx文件处理所有请求。 OpenLaszloServer 自动捆绑了Tomcat

SolostandloneOpenLaszlo output的简称)部署方式只受那些可以为flash文件服务的web服务器的支持。默认为solo部署方式。由于在SOLO 部署方式下媒体请求不是代理的,因此 SOLO 应用程序只支持FlashJPG MP3 媒体类型。而且,由于不存在数据的代理,SOLO 部署中也不支持 RPCSOAP 和持久连接之类的项。

 

2、语法和语义

lzx中,xml标记是用来创建javascript的对象。Javascript用来操纵lzx程序中所创建的对象。

Lzx严格遵守xmljavascript语法。

Lzx的大部分功能是由xml标记来执行的。

Lzx程序本身就是合法的xml文档。

Lzx程序如果不是合法的xml将不会被编译。

Lzx程序只能操作封装在xml中的数据。

 

命名空间

<canvas xmlns="http://www.laszlosystems.com/2003/05/lzx">...</canvas>

也可以使用

  <canvas>...</canvas>

如果没有命名空间,编译器默认的是LZX的命名空间(http://www.laszlosystems.com/2003/05/lzx")

Openlaszlo中使用的变量,须先定义。

LZX类中,对象的this作用域只在该方法或者handlers中。

LZX允许定义自己的标记。

通过<class>可以创建lzx的对象。创建的类必须给定nameextends.新创建的类将继承给定类的所以属性,同时,它也可以有自己的属性。

lzx中属性有两个不同的含义,一个表示语义,一个表示语法。

<attribute>可以定义js对象的属性值。

 JssetAttribute()也可以改变属性的值。

Handlers类似于Methods。但方法是通过对象的name来激活的。Handler必须关联到一个特定的事件。

<view> 
  <method name="bark"> 
    <!-- some JavaScript code --> 
  </method> 
  <handler name="onclick"> 
    this.bark()  
  </handler > 
</view>

当点击view的时候,触发handler代码,调用bark()方法

可以通过传统的js语法定义方法。但得事先用<method>声明该方法。

 

约束模型

通过Laszlo的约束模型,可以非常优雅的获得UI控件和动画效果。

任何属性,都可以为之赋予一个约束表达式,而不是一个标准的值。约束表达式以$美元符号开头,其格式如下:

$when{expression}

when的值是alwaysonceimmediately中的一个。默认值为always.

always 每当expression的一个依赖关系发生改变,该约束都将重新计算。

Once 一个约束在初始化之后一直是静态的。这样可以使约束只计算一次,可以提高效率。

Immediately 定义了结束元素,并且约束不依赖于其他对象,就可以使用这个值来计算约束。

 

Lzx中,name 属性是局部变量,id属性是全局变量。

Javascript可以处于<script></script><method></method><handler></handler>标记当中。也可以是 oninit="script expression"

lzx中,大部分事情即可以用xml标记实现也可以用javascript实现。

通常标记用于在编译时计算完成如canvas的布局。而脚本用于处理运行时事情,如响应用户的输入。

·        Use tags when that is theonly option.(比如每一个lzx程序都得以<canvas>开始</canvas>结束。以及<splash> , <method>, <attribute>, <resource> , <font> 等标记

·        Use JavaScript when that isthe only option.

·        If something can be done witheither tags or script, use tags (unless there is a good reason not to). 如创建一个叫samview可以使用标记<view name=”view”>也可以使用脚本sam=new lz.view();

LZX语言的执行顺序:

<view name="outside"> 
  <view name="inside"/> 
</view>

Inside要比outside先创建。

原创粉丝点击