返回首页

 

Director 8从入门到精通(八)
胡飞 4月13日 ChinaByte网络学院

  如果想作出专业级的多媒体软件,就必须精通Director;而精通Director,决不是一蹴而就的。Director的功能相当强大,要全面掌握她不是一件很容易的事。这部分将介绍一个行为库脚本的编写原理,来侧重介绍Lingo语言的使用,。

  在做多媒体教学软件时,要对学生(用户)的练习结果作正误判断。现在要求编写一个行为库脚本,对用户输入的数据进行检验。也就是要为开发人员提供一个行为脚本,该行为应具有如下功能:

  1.该行为联系的对象是域文本对象,域文本的内容是任何类型的可见数据;

  2.该行为提供如下接口(相对于开发人员而言):三个正确答案的参数接口,答案正确时的消息接口,答案错误时的消息接口。

  提供三个正确答案的接口是为了解决一题多解的问题。该行为要求开发人员提供的正确答案必须是1~3个,且第一个答案不为空。     

  3.要求该行为高效、简洁、健壮。
   根据要求,经过周详的分析,编写该行为脚本如下所示:

  --本行为用来检测域文本(#field)的数据是否与正确答案相符

  --"Check Answer" behavior v1.0 written by Hufei , 2000/07/14

  --******************************************************************

  --* 当前版本只适用于域文本(#Field),并且域文本的Framing属性必 *

  --* 须设置为“Limit to the field size”和“Editable”; *

  --* 目前不支持文本(#Text)类型,这在以后的版本中会改进。 *

  --******************************************************************

  --参数说明:

  --FirstAnswer: 域文本接受的第一个正确答案(由开发人员赋值)

  --secondAnswer: 域文本接受的第二个正确答案

  --ThirdAnswer: 域文本接受的第三个正确答案

  --MessageCorrect: 如果域文本中输入的数据(指用户使用开发的最终产品

  -- 时输入的数据)正确,则执行该消息(动作)

  --MessageInCorrect: 如果域文本中的数据不正确,则执行该消息(动作)

  --以上五个参数均由开发人员输入

  --行为描述

  on getbehaviorDescription

  Return

  "This behavior is used to check whether the text of current sprite "& Return &

  "is fit in with the answer the developer given. "&"The parameters the developer" & Return &

  "input are the answers, whose number can be at most three. "&Return

  end getbehaviorDescription

  --在打开行为库时该行为的浮动提示

  on getbehaviorToolTip

  return

  "Drag this behavior to a sprite which member type must be #field or #text." &

  "Input the answer text which format must be a string or an integer value or a float value," &

  "the first answer text can not be EMPTY, other two may be EMPTY." &Return&

  "Caution: In this version, the member must be a field, not a text!" &

  " And the framing property of field must be "& QUOTE &"Limit to field size"& QUOTE &

  "and "& quote &"Editable" & quote &"!"&Return

  end

  property spriteNum

  property MySprite

  property myMember

  property MyType

  property FirstAnswer

  Property SecondAnswer

  Property ThirdAnswer

  Property MessageCorrect

  Property MessageIncorrect

  --检测消息,初始化精灵(域文本)

  on beginsprite me

  checkMessage

  Initialize me

  end beginsprite

  --精灵退出舞台时清空

  on endsprite me

  sprite(me.spriteNum).member.text = ""

  end

  --检测消息

  on checkMessage

  if (MessageCorrect = "Nothing") or (MessageCorrect = "") then

  MessageCorrect = "Nothing"

  end if

  if (MessageIncorrect = "Nothing") or (MessageCorrect = "") then

  MessageIncorrect = "Nothing"

  end if

  end checkMessage

  --初始化精灵

  on Initialize me

  Mysprite = sprite(me.spriteNum)

  myMember = mysprite.member

  MyType = MyMember.type

  mymember.text = ""

  --第一个答案不能为空

  if FirstAnswer = "" then

  alert "The correct answer can not be empty!"

  end if

  end Initialize

  --离开当前帧时判断域文本是否为空,如果不为空,判断是否按下回车键

  on exitframe me

  if mymember.text <> "" then

  checkEnter

  end if

  end exitframe

相关文章
  • 在Director中应用Flash——从Director到Flash
  • 在Director中应用Flash——从Flash到Director(图)
  • 在Director中应用Flash——基础篇
  • Director8新手上路——可视化的交互创作
  • Director8新手上路——深入了解舞台、演员、精灵与分镜(二)
  • Director8新手上路——深入了解舞台、演员、精灵与分镜(一)
  • Director8新手上路——绘图工具(二)(图)
  • Director8新手上路——绘图工具(一)(图)
  • Director8新手上路——快速入门(图)
  • Director8新手上路——界面浏览(图)
  • Director8新手上路——新增功能介绍
  • Director 8从入门到精通(九)(图)