Max:提取

max15
15mAbstractions.maxpat

1. #1:开启toggle后,捕捉你的鼠标轨迹,然后在lcd上画线,这里使用了bucket物件,他总输出它收到的最后一个值,这个物件可以将你之前的鼠标位置与当前鼠标的位置连接起来。无论你何时关闭这个程序,当你下一次开启的时候,它仍会从你上一个结束点开始继续绘制。

2. 在程序的第一部分,里边有很多逻辑关系,这时我们会想到用封装来简化这个界面。同时,这组依屏幕分辨率进行鼠标控制的逻辑运算貌似在很多的地方都可以用得到,如果无需复制粘贴它便可让它为其他patch所用那就太棒了。这里便引出了提取(abstractions)的概念。一个提取就是一个保存为外部文件的subpatcher,同时可以被作为一个常规的Max物件使用。本例中的提取与这个例子位于同一文件夹下,一组提取可以在你将它们放入“patches”文件夹下的一个或多个文件夹后被创建(或者任何Max检索文件的地方)。

3. #2:绿框WTHITM(代表”Where The Heck Is The Mouse?”)就是一个典型的提取案例,双击它,则将打开这个提取,这看起来与封装很像,除了一点─这个提取无法被unlock后修改,因为它是一个独立存在的patcher文件。要查找一个提取,最简单的方式是通过File > New File Browser的搜索功能。如果你修改并保存了一个提取,则程序中所有使用到它的部分都会改变─甚至在这个patcher已经载入的情况下。

4. 用文件检查器查看WTHITM这个patch的出、入口,三点标注值得注意:Annotation(注释):在这里标记的所有文本都将在你鼠标悬停于被标记物件上方的时候显示在Clue窗口内;Hint(线索):在这里标记的所有文本都将在你鼠标悬停于被标记物件上方的时候显示在鼠标旁的气球式注释框内;Comment(评论):在这里标记的所有文本都将在你鼠标指向上级patcher的出、入口的时候显示为assistance(援助)文本。善用这些文本标记法将大大有利于今后你对它们的重复利用。

5. #3:看上去与#2很像,但在里边使用的提取叫做WTHITM_scaled,并包括了两个引数,分别为lcd物件的长度和高度。打开它,我们看到两个有趣的值,#1和#2,是的,它们分别代表WTHITM_scaled提取的两个引数。使用这些可替换值(称为 pound-sign arguments)是重复弹性使用提取的关键。如果换为更大或更小的lcd,你只需改变WTHITM_scaled提取的引数弹性变化,而无需去打开并修改它。这便是模块化封装的好处。

本例内新物件:
bucket:通过一个接一个outlet循环式传递一个数字

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.