ado
这一章将会讲一下开发一个基于Web的Hangman Game(猜词游戏)。这里面会用到一些PRADO的组件。这个游戏说明了显示状态使PRADO页面具有很强的交互性。
这个游戏只包括了一个页面来实现以下的功能:当用户第一次访问的时候,允许用户选择三种不同难度来开始这个游戏,不同的难度对应着不同的可以猜错的次数。游戏开始后,页面的上半部分会显示要猜得单词,没有猜中的字母用下划线显示。页面的下半部分列出了26个字母,用户可以点击对应字母来选择要猜的字母。如果用户放弃游戏或者错误次数超过了难度限制,会显示失败信息;如果猜对了,会显示成功信息。任何时候用户都可以重新开始游戏。
范例中会使用的 PRADO 组件包括:
这些定义好的组件通过属性和事件已经封装好了很多功能。比如,可以设置TPanel 的Visible 游戏中的一些数据在游戏过程中需要一值保持着的。因为这里只用了一个页面,所以可以使用显示状态而不需要使用session来保存这些数据。下面这些数据需要保存在显示状态中: 他们都被定义在页面的属性中(当然也可以不这么做)。 我们需要创建6个文件。假定这个应用放在Web服务器的根目录下,这些文件是: 下面主要讲一下HomePage 类的三个文件,其他文件和"Hello,world!"例子是类似的。 3.1 HomePage.tpl 首先来说一些页面模板文件。这个过程也是PRADO应用开发的过程。首先在页面模板中组合PRADO组件,然后就可以测试一下这个页面的显示样子,最后编写页面类文件中需要的代码。这是一个典型的RAD(快速应用开发)的开发过程。 这个模板文件的位置是 examples/hangman/HomePage.tpl . 可以看到这个模板被分成4个组件startPanel, guessPanel, winPanel, 和losePanel ;他们将根据游戏的状态来决定是否可视。 在 startPanel中,使用了三个 TRadioButton 组件让用户可以选择游戏的难度。TButton 的OnClick 事件指定了一个响应函数onSelectLevel ,当用户选择难度后点击了按钮就会被触发。如果用户没有选择难度,TLabel 组件会显示一个错误提示信息。 在 guessPanel中,三个表达式标签用于显示页面的 GuessWord, Misses,和 Level 属性。 同时还有一系列的TLinkButton 组件来显示字母A到Z,它们用于让用户点击选择猜哪一个字母。不管是猜对了还是猜错了,以后这个字母就不允许再被点击了。注意,所有的这些TLinkButton 组件都有同样的一个事件OnClick 的响应函数onGuessWord 。 winPanel 和 losePanel 会显示成功和错误的信息。如果用户点击了面板上的TLinkButton ,OnClick 事件的响应函数onStartAgain 会被触发。 3.2 HomePage.spec このページ仕様ファイルは examples/hangman/HomePage.spec にあります。これは非常に単純で、Misses、Level、GuessWord、Wordの 4 ページの属性を定義するだけです。 🎜> > HomePage.php このページ クラス ファイルは examples/hangman/HomePage.php にあります。 . ページクラス は、フレームワークによって提供される TPage クラスを継承します。 ゲッター関数とセッター関数は、ページのプロパティを定義するために使用されます。注: 関数と setViewState() 関数は、プロパティ データを返し、維持するために呼び出されます。これら 2 つの関数は、TPage の親クラス TComponent に実装されています。これらは、状態メカニズムを表示するメインのコードです。表示状態で保存されたデータは常にページのポストバックに保存されます。 次に、4 つのイベント応答関数が実装されます: 、onGuessWord()、onGiveUp()、StartAgain() http://
属性来控制整个
。これらは、ページ テンプレートで指定された OnClick イベント応答関数に対応します。 4つの機能の具体的な内容はこれ以上説明する必要はなく、一目で理解できるでしょう。 /examples/hangman.php">