From an interview with Peldi Guilizzoni, the creator of Balsamiq--an Adobe AIR application for creating mockups:
通过对Balsamiq的创建者Peldi Guilizzoni的采访 - 一个用于创建模型的Adobe AIR应用程序:
And then you started working on the first version Balsamiq Mockups. Was there any hurdles in the development process?
然后你开始研究第一个版本的Balsamiq Mockups。开发过程中是否有任何障碍?
Ha! There's always hurdles, it's part of the fun of coding isn't it?
哈!总是存在障碍,这是编码乐趣的一部分不是吗?
Let me think. I think I rewrote the foundation classes (the Model, the Input Manager, the base UI Component, etc) a few times until I was happy with them. First I started with each UI control handle the mouse events for moving and resizing itself, then moved all the mouse handling to a transparent InputManager canvas that sits on top of the view (similar to what I had done for Connect's whiteboard). I also had to learn and digest all the different options for run-time skinning before I was able to create a strategy that worked for my tool, which took a while.
让我想想。我想我重写了基础类(模型,输入管理器,基本UI组件等)几次,直到我对它们感到满意为止。首先,我开始使用每个UI控件来处理移动和调整自身大小的鼠标事件,然后将所有鼠标处理移动到位于视图顶部的透明InputManager画布(类似于我为Connect的白板所做的那样)。在我能够创建适用于我的工具的策略之前,我还必须学习并消化所有不同的运行时换肤选项,这需要一段时间。
- Is foundation classes a common term for the core classes in a framework?
- Are "Model, UI Component, Input Manager" common themes in user interface development and what do they comprise of exactly?
- What does he mean when he says he "moved the mouse handling to a transparent InputManager canvas on top of the view"? What is the view and the InputManager canvas.
- Why does he do runtime skinning? Can't the skinning be done before hand? What other options are available that he could have explored?
基础类是框架中核心类的通用术语吗?
“模型,UI组件,输入管理器”是用户界面开发中的常见主题,它们究竟是什么组成的?
当他说“将鼠标处理移动到视图顶部的透明InputManager画布”时,他的意思是什么?什么是视图和InputManager画布。
他为什么要运行时皮肤?皮肤不能在手前完成吗?他可以探索哪些其他选择?
I am trying to get a handle on his design architecture.
我试图了解他的设计架构。
2 个解决方案
#1
I don't understand the question. To your first point, well yes. Why are you nit picking this guy? His application is pretty good. MFC == Microsoft Foundation Classes. To the second, I those are pretty straightforward, they roughly approximate to a MVC, it's just a variation on a similar pattern. As far as the third, well it's specific to his application; you would probably need to know a little more about how development occurs in AIR to know exactly what he means. But in general it doesn't sound very difficult to understand. For the last, I don't know. Ask him. :) It's a really neat application.
我不明白这个问题。至于你的第一点,是的。你为什么挑这个人?他的申请非常好。 MFC == Microsoft基础类。到了第二个,我很简单,它们大致接近MVC,它只是一个类似模式的变体。至于第三个,它特定于他的应用;您可能需要更多地了解AIR中的开发情况,以确切了解其含义。但总的来说,听起来并不难理解。最后,我不知道。问他。 :)这是一个非常巧妙的应用程序。
He was also interviewed on the Startup Success Podcast:
他还接受了Startup Success播客的采访:
#2
He is doing mock-ups. So for him, each UI Component is basically a rectangle (or other shape) that needs to be drawn and react to input. The input can come from different sources (mouse, keyboard, prepared for multi-touch?), so an Input Manager makes sense. In a mock-up, most components will have the same simple behavior, so extracting that to a separate object makes sense. In a mock-up it makes sense to change skins at run-time
他正在做模特。因此对于他来说,每个UI组件基本上都是一个矩形(或其他形状),需要绘制并对输入作出反应。输入可以来自不同的来源(鼠标,键盘,为多点触控做好准备?),因此输入管理器是有意义的。在模型中,大多数组件都具有相同的简单行为,因此将其提取到单独的对象是有意义的。在模型中,在运行时更改外观是有意义的
#1
I don't understand the question. To your first point, well yes. Why are you nit picking this guy? His application is pretty good. MFC == Microsoft Foundation Classes. To the second, I those are pretty straightforward, they roughly approximate to a MVC, it's just a variation on a similar pattern. As far as the third, well it's specific to his application; you would probably need to know a little more about how development occurs in AIR to know exactly what he means. But in general it doesn't sound very difficult to understand. For the last, I don't know. Ask him. :) It's a really neat application.
我不明白这个问题。至于你的第一点,是的。你为什么挑这个人?他的申请非常好。 MFC == Microsoft基础类。到了第二个,我很简单,它们大致接近MVC,它只是一个类似模式的变体。至于第三个,它特定于他的应用;您可能需要更多地了解AIR中的开发情况,以确切了解其含义。但总的来说,听起来并不难理解。最后,我不知道。问他。 :)这是一个非常巧妙的应用程序。
He was also interviewed on the Startup Success Podcast:
他还接受了Startup Success播客的采访:
#2
He is doing mock-ups. So for him, each UI Component is basically a rectangle (or other shape) that needs to be drawn and react to input. The input can come from different sources (mouse, keyboard, prepared for multi-touch?), so an Input Manager makes sense. In a mock-up, most components will have the same simple behavior, so extracting that to a separate object makes sense. In a mock-up it makes sense to change skins at run-time
他正在做模特。因此对于他来说,每个UI组件基本上都是一个矩形(或其他形状),需要绘制并对输入作出反应。输入可以来自不同的来源(鼠标,键盘,为多点触控做好准备?),因此输入管理器是有意义的。在模型中,大多数组件都具有相同的简单行为,因此将其提取到单独的对象是有意义的。在模型中,在运行时更改外观是有意义的