返回列表 回复 发帖

[教程]按钮的程序化(完)

我们并不要求画板中的按钮像真正的程序那样多才多艺,但我们还觉得画板按钮限制太多。为什么?如果把一个按钮作为一个语句来理解,按钮做不到哪些事?
    我认为是条件判断和循环。这篇教程就是讲如何实现条件判断和循环,以及它的原理的。

ps。第一次写教程,可能写的不怎么好。
真相已经被掩盖。
1.条件判断
    首先,我来介绍一个按钮“移动点”。它的功能很简单把某一点A移到另一点B处。可设置的也很少,就一项速度。
    平常我们都是把A移到与A无关的点B处,这里我们要以另一种方式来用它,B和A是有关的。
    来一个实例: 1.gsp (2.15 KB)
    ps。固然这个要求有很多种方法做到,但这个是对所有按钮及所有条件均有用的
真相已经被掩盖。
“这有什么用?”有人问。你细看一下,按钮是保持按下状态的。也就是说你它如果是依序执行的按钮的首按钮。后面的按钮永远不会执行。因此我在这种按钮上做文章,就可由条件来决定后面的按钮要不要执行。

    ps。下面要开始讲做法了。
真相已经被掩盖。
要求:建立两按钮,但某值0是执行A按钮。非0时执行B按钮。
  已知:按钮A、按钮B、某bool值Z(附文件: 2.gsp (3.64 KB)
  做法:
        1.建立一坐标系。
        2.新建一点D。
        3.度量xy值。
        4.计算x+1-Z。
        5.由x+1-Z与y,绘制点E。
        6.建立按钮移动D到E。
        7.计算x+1-abs(Z-1)。
        8.由x+1-abs(Z-1)和y,绘制点F。
        9.建立按钮移动D到F。
        10.建立系列按钮G(依序执行,1.A 2.移动D到E)
        11.建立系列按钮H(依序执行,1.B 2.移动D到F)
        12.建立系列按钮(同时执行,首动作停止,1.G 2.H)
        13. 改标签、隐藏不必要的东西。
  最终效果: 3.gsp (5.9 KB)

ps。bool值也是数,不过它非0即1,非1即0。
真相已经被掩盖。
2.循环
    按钮怎么循环呢?我学过c语言,c的循环有三种,while、for、do-while,如果考虑得更深入一点,你就会发现其实都能用goto和if来实现。if在前面已经讲过了,就是条件判断,我们只要实现goto就可以了。
    “用系列按扭就可以了,楼主你直接讲做法吧!”有人插话。可惜,系列只能在目标创建出后才能建立,而我们要的goto是要在目标未建立立之前,就可创建了。
    “为什么?”插话的人又来了。一个典型的循环是这样的:系列A(依序执行,1.B 2.C)、系列B(你要重复做的事)、c(goto A)。这是一个简单的死循环,A要在B、C后建立,C要在A后建立(假设用的是系列),这种东西是完全做不出来的,所以这个提议是不能实现的。

    ps。版主的话给了我无穷的力量,我决定,作业留到晚上完成,打完再说。
真相已经被掩盖。
我们不能用系列来实现goto,那怎么办呢?我来介绍一下链接,它有三种用法,1.打开网页 2.转到另一页面 3.转到另一页面并激活该页面上的一个按钮。
    “有什么用呢?”用处大了,注意当你建立它后,你依然可以让它重新指向另一个按钮。这个特点使它在这个应用中超越了系列按钮,可以指向比他晚创建的对象。(只可惜不能指向同页的按钮,所以每完成一次循环,屏幕会闪一下。我曾用过某些方法让它指向同页的按钮,但每次都已以程序崩溃结束)
真相已经被掩盖。
要求:有一按钮A,请让画板重复执行它。
已知:按钮A(附文件: 4.gsp (2.22 KB)
做法:
    1.新建一页面2(原来的叫页面1,不显示页切换)
    2.在1中新建一链接B(指向2页面,不指向按钮)
    3.在2中新建一链接C(指向1页面,不指向按钮)
    4.系列E(依序执行,1.A 2.B)
    5.2中新建一点,建立隐藏点按钮D(总是隐藏)
    6.系列F(依序执行,1.D 2.C)
    7.链接B重指向F,C重指向E。
    8.改标签、隐藏不必要的东西。
最终效果: 5.gsp (4.38 KB)
真相已经被掩盖。
(全文完)
真相已经被掩盖。
超赞!

我也曾想能不能实现if判断语句等但没深入研究,原来楼主对各种情况都研究出成果了,真牛。
金狐工作室:http://www.jinhu.me
感谢楼主。
返回列表