亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

探索研究Laszlo的類、屬性及事件(圖)

2019-11-18 12:27:04
字體:
來源:轉載
供稿:網友

  Laszlo,一個大量應用于interent應用程序的xml平臺,最近成了開源代碼.這個平臺結構與XUL和XAML十分相似,都是在瀏覽器中完成設計.Laszlo使用Macromedia Flash作為它的執行平臺,以此獲得卓越的兼容性.
  
  Laszlo應用程序由LZX寫成.LZX是基于XML的程序語言,可以用任何一個文字編輯器書寫.當Laszlo服務器訪問這些文件,它將這些LZX文件轉化為比特碼或二進位形式,然后這些編碼被送到瀏覽器中Macromedia Flash插件.你的服務器不需要Macromedia Flash成分.Macromedia Flash可用和兼容于在大多數瀏覽器.
  
  你可以在java.net中查閱"Laszlo: An Open Source Framework for Rich Internet applications"(作者:Bill Grosso )來獲取關于這種平臺的基本原理.本文中,我將會談論語言的一些基本原則,這些原則在你使用LZX編寫程序時將會派上用場.至于更深一步的學習,可以求助于Laszlo站點的文檔.
  
  設立Laszlo的“開發便箋”
  
  使用 我關于Laszlo的評注,或者訪問Laszlo站點,下載安裝Laszlo.也許你已經安裝了Tomcat.假如這樣的話,Laszlo的安裝文檔將會在Laszlo安裝時建議暫停Tomcat.假如你沒有安裝Tomcat,Laszlo將會附帶一份Tomcat拷貝.安裝后,你可根據上面所提到的評注,將Laszlo設為Tomcat的另一個web應用。對于經驗豐富的Tomcat使用者,這僅僅是大概設置一下WEB瀏覽器的根.
  
  我們寫一段LZX文件來開始你的學習過程.代碼如下:
  
  <canvas height="500" width="800" debug="true">
  <debug x="450" y="0" height="300"/></canvas>
  
  當LZX文件被提交給瀏覽器,你的瀏覽器版面將會與圖1相同.我把它叫做你的“開發便箋”.這是應用程序開發所必需的.初始設置答應你寫一個調試器聲明,將它們在調試器窗口顯示.這個設置還答應在調試器外有足夠的空間以存儲視覺控制器.
  
 探索研究Laszlo的類、屬性及事件(圖)(圖一)

  
圖1:Laszlo“開發便箋”.

  
  編寫類
  
  現在你有了一個可以使用的開發便箋,你可以在 Laszlo寫一個類來開始編碼練習.一個類的基本特點是它的一些局部變量.下面的代碼定義一個類和類中的一些變量.假如不是由于XML句法的原因,Laszlo的類定義與Java類定義非常相似.與Java不同的是,Laszlo類型系統與動態語言如javascript非常類似;也就是說,它非常的靈活寬松.
  
  <canvas width="800" debug="true"><debug x="450" y="0" height="300"/><class name="test">
  <attribute name="a1" type="string"/>
  <attribute name="b1"/></class></canvas>
  
  Laszlo中,每一次動作都在<canvas>標記符中發生.如此例所示,一個LZX類在<canvas>標記符中定義.這個編碼將一個類定名為test,屬性名a1,b1.
  
  實例化一個類
  
  上述的編碼定義了一個類,下面的編碼將會說明如何實例化所定義的類test:
  
  <canvas width="800" debug="true"><debug x="450" y="0" height="300"/><class name="test">
  <attribute name="a1" type="string"/>
  <attribute name="b1"/></class><!--Instantiating a class--><test name="testInstance"></test></canvas>
  
  仔細看著,類名test是如何實例化為下一個節點或<test>標記符.實例化對象被命名為testInstance,當需要時,它可以作為變量canvas.testInstance被使用.
  
  Laszlo中屬性的特點
  
  Laszlo中,每當一個屬性的建立和更改時,一個onchange事件將會產生.對于那些由事件控制的可視化編程來說相當的棒.這種機制將會節省編碼工作量,更不必提其可讀性和易理解性.
  
  本文的主要目的是向你展示如何設定一個屬性,如何激活事件和怎樣編碼以響應這些事件.我將會展示怎樣寫一個關于屬性a1的onchange事件.
  
  <canvas width="800" debug="true"><debug x="450" y="0" height="300"/><class name="test">
  <attribute name="a1" type="string"/>
  <attribute name="b1"/></class><!--Instantiating a class--><test name="testInstance">
  <!--Demonstrating an onchange for attribute event-->
  <method event="ona1" name="ona1Method">
  Debug.write("hey this works");
  </method>
  </test></canvas>
  
  看到方法怎樣定義ona1事件了嗎?當a1的屬性被改變時事件將被激活.這個編碼還展示了定義一個方法的基本語法.注重,與Java不同,方法屬于對象或實例,在類中并沒有此方法.method塊在調試器中寫了一行.假如調試器被激活,此行會在調試器窗口中顯示出來.
  
  寫LZX時,注重所有LZX的書寫和命名對大小寫不敏感.然而,在XML中定義節點和標示符,XML大小寫敏感,Javascript同樣如此.所以當你面對Laszlo時一定要緊記這個差別.
  
  Refining the "Developer Pad" with Alerts
  
  在JavaScript中編程,調用alert()方法進行調試是很平常的. 所以我在Laszlo中尋找可以信賴的alert()方法,不過沒有找到.但是卻意外地找到一個名為alert的控制器(更確切地說,是一個模態對話框).我猜測我可以利用其來模擬alert功能,當作調試器使用.以下編碼是我的嘗試.此外,到目前為止,這些編碼都是學習LZX的基本特征.
  
  <canvas width="800" debug="true"><debug x="450" y="0" height="300"/><class name="test">
  <attribute name="a1" type="string"/>
  <attribute name="b1"/></class><!--Instantiating a class--><test name="testInstance">
  <!--Demonstrating an onchange for attribute event-->
  <method event="ona1" name="ona1Method">
  Debug.write("hey this works");
  </method></test><!-- Simulating an alert --><!-- Instantiate a modal alert dialog --><alert name="myalert" width="100" y="100">
  hi - initial text</alert><!-- A method to work the modal dialog --><method name="showAlert" args="displayText">
  canvas.myalert.setAttribute("text",displayText);
  canvas.myalert.open();</method><!-- Testing the alert function --><button onclick="canvas.showAlert('Alert Button Pressed')">
  Show Alert</button></canvas>
  
  在上面的編碼中,我創造了一個canvas的子類alert組件的實例,聲明了alert的大小,還命名為myalert,并賦與其內容:"hi - initial text.".
  
  我還寫了一個showAlert方法來顯示對話框.此方法有一個參數叫做text.方法主體訪問模式對話框,將其屬性text傳遞至displayText.然后,此方法在模式對話框上調用open方法.
  
  我還制作了一個按鈕叫做showAlert().當showAlert按鈕被按下,你將會看到一個關于你文本的警告.由于這個按鈕是canvas的子類,沒有位置設置,它將在屏幕的左上角顯示.可以使用下面的編碼改變按鈕位置,使它出現調試窗口的下面:
  
  <button x="500" y="310"
  onclick="canvas.respondToMethod()">Show Alert</button>
  
  圖2中觀察結果.
  
 探索研究Laszlo的類、屬性及事件(圖)(圖二)

  
圖2:附帶警告窗的Laszlo“開發便箋”

  
  探索屬性及事件及聯系
  
  范例代碼現在開始進一步探索屬性與事件之間的聯系.被用來測試alert的按鈕也可以用來設定此前定義的屬性.我想要展示的是設定這些屬性如何觸發相應的onchange方法.
  
  以下編碼是一個方法,respondToButton(), 將在showAlert按鈕按下時被調用.
  
  <canvas width="800" debug="true"><debug x="450" y="0" height="300"/><class name="test">
  <attribute name="a1" type="string"/>
  <attribute name="b1"/></class><!--Instantiating a class--><test name="testInstance">
  <!--Demonstrating an onchange for attribute event-->
  <method event="ona1" name="ona1Method">
  Debug.write("hey this works");
  </method>
  </test><!-- Simulating an alert --><!-- A modal alert dialog --><alert name="myalert" width="100" y="100">
  hi - initial text</alert><!-- A method to work the modal dialog --><method name="showAlert" args="displayText">
  canvas.myalert.setAttribute("text",displayText);
  canvas.myalert.open();</method><!-- Testing the alert function --><button onclick="canvas.respondToButton()">Show Alert</button><method name="respondToButton" >
  //PRepare a string
  var somestring =
  "Hey, I am setting the a1 attributes value";
  //Write a debug to see it
  Debug.write(somestring);
  //Call the alert to see it
  showAlert(somestring);
  //Go ahead and set the attribute
  canvas.testInstance.setAttribute("a1",'satya');
  //The above will fire an event causing
  //"ona1Method" to execute.
  //You will see this in the debugger</method><

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区3区| 久久久久久久久久久人体| 欧美制服第一页| 51精品在线观看| 欧美视频二区36p| 亚洲最大福利视频| 日本免费在线精品| 一本色道久久综合狠狠躁篇的优点| 久久精品国产亚洲| 欧洲成人在线观看| 亚洲免费中文字幕| 欧美色欧美亚洲高清在线视频| 亚洲伊人成综合成人网| 国产综合久久久久久| 姬川优奈aav一区二区| 日韩色av导航| 成人黄色免费片| 久久这里有精品视频| 青青久久aⅴ北条麻妃| 久久久久免费精品国产| 亚洲网在线观看| 亚洲一级片在线看| 亚洲国产精品va在线观看黑人| 久久精品国产一区二区电影| 国产在线拍偷自揄拍精品| 91久久久久久久久久久| 日本成人免费在线| 夜夜嗨av色综合久久久综合网| 6080yy精品一区二区三区| 亚洲欧美在线第一页| 另类少妇人与禽zozz0性伦| 欧洲亚洲免费视频| 国内精品视频一区| 日韩经典中文字幕在线观看| 欧美精品久久久久久久久久| 国产精品99蜜臀久久不卡二区| 久久在线免费视频| 中文字幕亚洲一区二区三区五十路| 日韩美女在线看| 福利视频导航一区| 欧洲美女7788成人免费视频| 国产精品久久久久久久一区探花| 色av中文字幕一区| 日韩美女激情视频| 91久久精品国产| 国产中文欧美精品| 日韩欧美一区二区在线| 色噜噜国产精品视频一区二区| 国产亚洲精品美女久久久久| 欧美理论电影网| 亚洲日本欧美中文幕| 日韩av电影中文字幕| 亚洲国产精品一区二区三区| 久久久噜噜噜久久| 日韩美女在线播放| 国内久久久精品| 一区二区欧美在线| 国产视频观看一区| 91av在线免费观看| 亚洲一区二区日本| 欧美激情欧美激情在线五月| 国产亚洲一区二区在线| 在线午夜精品自拍| 国产成人免费av| 日韩在线视频中文字幕| 亚洲美女激情视频| 亚洲国产日韩欧美在线动漫| 国产91在线播放| 最新国产成人av网站网址麻豆| 一道本无吗dⅴd在线播放一区| 国产精品第1页| 欧美亚洲成人xxx| 青青久久aⅴ北条麻妃| 欧美肥臀大乳一区二区免费视频| 日韩国产欧美区| 法国裸体一区二区| 亚洲精品国产综合区久久久久久久| 欧美激情视频在线观看| 日韩电影免费观看在线| 亚洲白虎美女被爆操| 爽爽爽爽爽爽爽成人免费观看| 久久久久久久香蕉网| 日本精品视频网站| 中文字幕欧美日韩精品| 日av在线播放中文不卡| 在线精品高清中文字幕| 国产欧美精品久久久| 久99久在线视频| 亚洲精品白浆高清久久久久久| 欧美激情a∨在线视频播放| 久久综合网hezyo| 国产视频精品自拍| 国内精品400部情侣激情| 大伊人狠狠躁夜夜躁av一区| 欧美专区在线观看| 久久资源免费视频| 91精品国产高清久久久久久久久| 色777狠狠综合秋免鲁丝| 国产成人亚洲综合青青| 成人免费看黄网站| 欧美大片欧美激情性色a∨久久| 色噜噜国产精品视频一区二区| 国产精品美乳一区二区免费| 在线观看日韩www视频免费| 96精品视频在线| 亚洲欧美另类人妖| 亚洲欧洲成视频免费观看| 久久人人爽人人| 国产精品视频免费在线| 日韩av理论片| 欧美寡妇偷汉性猛交| 久久综合久久八八| 色悠悠国产精品| 亚洲成人a级网| 国产91色在线|免| 亚洲免费伊人电影在线观看av| 黑人欧美xxxx| 尤物九九久久国产精品的分类| 在线性视频日韩欧美| 成人美女免费网站视频| 成人免费黄色网| 欧美日韩激情视频8区| 亚洲欧美日韩一区二区在线| 国产高清视频一区三区| 91精品久久久久久久久久久久久久| 亚洲国产欧美在线成人app| 精品欧美激情精品一区| 日韩精品免费在线观看| 亚洲激情视频在线| 国产有码在线一区二区视频| 国产91露脸中文字幕在线| 中文亚洲视频在线| 91视频国产一区| 国产精品第二页| 欧美性理论片在线观看片免费| 日韩在线观看av| 日韩日本欧美亚洲| 亚洲人成伊人成综合网久久久| 国产精品影片在线观看| 亚洲欧洲中文天堂| www.精品av.com| 久久精品国产2020观看福利| 国产精品69精品一区二区三区| 亚洲人成欧美中文字幕| 国产裸体写真av一区二区| 中文字幕亚洲无线码在线一区| 国产一区二区日韩精品欧美精品| 亚洲国产高潮在线观看| 欧美成人中文字幕| 国产999在线观看| 懂色av中文一区二区三区天美| 亚洲视频精品在线| 国产精品夫妻激情| 亚洲欧美日韩成人| 欧美日韩久久久久| 欧美大肥婆大肥bbbbb| 日韩成人久久久| 欧美成人午夜影院| 久久久精品一区二区| 欧美激情国产精品| 久久最新资源网| 成人中文字幕+乱码+中文字幕| 久久久影视精品| 日韩欧亚中文在线|