- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用一种线程编程语言(Actionscript)来实现嵌套状态转换的最佳方法。说我有一个像这样的行为树的结构:
现在,假设每个叶子节点都是网站上的目标点,例如画廊中的图像或嵌套在页面 View 中的帖 subview 中嵌套的注释……目标是能够从叶子中运行动画过渡动画前一棵树(从下到上),并动画当前树(从上到下),从节点到叶节点。
因此,如果我们位于最左下角的叶节点处,并且想转到最右下角的叶节点,则必须:
最佳答案
在建议一种可能的方法之前,我将尝试简化问题。过渡似乎与 View 有关,而不与模型有关。如果我跳过转换并直接转到其他叶节点,则该应用程序仍然可以运行,但用户看不到任何视觉提示。因此,我建议您专门使用 View Controller 来保存当前分支和各种 View 的过渡。
这可能是将两种过渡类型拆分为一种堆栈的更好方法,其中弹出过渡将返回到上一个节点,而推送过渡将在层次结构中前进。苹果公司使用类似的技术使用navigation view controller来管理导航应用程序。它基本上维护了用户遵循的到达特定节点的 View Controller 堆栈。当用户返回时,最上面的项目从堆栈中弹出,并且用户看到了上一个项目。如果用户在层次结构中更深入,则会将新的 View Controller 插入堆栈。
您仍然需要一种全局方式来以轻量级的方式表示层次结构,而导航堆栈仅将当前可见的分支存储到叶节点。
如果用户从一个叶节点转到另一个叶节点,则当前堆栈将弹出到公共(public)父节点。然后,将要求全局树结构获取从该父节点到新叶节点的路径。节点的此路径被推送到当前导航堆栈中,并且在推送每一项时,都会显示过渡。
在一个简单的算法中,将有以下两种数据结构以及一种获取包含叶节点的整个分支的方法:
stack = []
tree = create-tree()
// empty current branch upto the common ancestor, root node if nothing else
until stack.peek() is in leaf-node.ancestors() {
stack.pop() // animates the transition-out
}
parent = stack.peek();
// get a path from the parent to leaf-node
path = tree.get-path(parent, leaf-node)
for each node in path {
stack.push(node) // animates the transition-in
}
interface Tree {
List<Node> getAncestors(node);
List<Node> findPath(ancestorNode, descendantNode);
}
关于optimization - 从嵌套状态过渡到嵌套状态的最佳实践(见图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083516/
有没有办法让文字不上下跳动?我不能使用position:absolute。因为它弄乱了我网站的其余部分。请看这个 fiddle :http://jsfiddle.net/9xn19111/11/ 这是
我正在尝试将文本“WE CREATE DANCE”“WE HAVE FUN”“WE LOOK GOOD”放置在一个容器内,该容器将根据文本的大小和文本的行数进行调整。容器的大小是未知的,因为它是动态的
我正在构建一个 Wasm 应用程序并编译它,我有一个 shell 脚本。 当我从终端手动运行它时,我有以下内容: /app/Go/assets$ ./script.compile.wasm.sh Wa
我正在关注 URL: https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel
我想看到我在 Chrome 中悬停的 anchor 的 :hover 样式。在 Firebug 中,有一个样式下拉列表允许我为元素选择不同的状态。 I can't seem to find anyth
我刚刚尝试安装 git-flow,但是,它似乎没有与 git 正确集成,我该怎么做才能将 gitflow 与 git 集成?我可以手动执行此操作吗? 谢谢,杰弗里 [root@sa 2]# wget
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: “git pull” broken 在我的 MAC 上使用 git version 1.7.5.4 当尝试从
我连接了 bitbucket,我在我的电脑上安装了 Git 和 sourcetree,我尝试将 sourcetree 和 bitbucket 连接在一起。但我无法将两者联系起来。当我尝试克隆存储库源路
我设置了github for mac 现在我正尝试从终端使用 git 命令。 如果我尝试运行 git rebase 命令,我会收到以下消息 > cd /Applications/GitHub.app/
我正在尝试使用 git send-email 发送补丁,但我收到以下错误: git: 'send-email' is not a git command. See 'git --help'. 如何使
尝试按照说明从 docker 网站构建 docker 镜像。 https://docs.docker.com/examples/running_redis_service/ 这是我得到的错误,我会按照
当我尝试从本地文件中 pull 、克隆或推送某些内容时出现此错误。我尝试使用以下方法解决: Reupdating path variable to C:\Program Files\Git\cmd\g
我目前正在使用 Cloudera 5.6 尝试基于另一个表在 hive 表中创建 Parquet 格式表,但我遇到了错误。 create table sfdc_opportunities_sandbo
我在 visual studio 2010 中使用 git 进行源代码控制。我可以使用诸如“git status”、“git commit”之类的命令,但是当我尝试使用“git review”时,我得
如何解决“MacBook pro”上的此错误。 git: 'credential-wincred' is not a git command. See 'git --help'. git: 'cred
以下 java 8 流没有任何终端操作。下面这个块是不是应该是懒惰的,因为我只有中间操作,还没有被终端操作操作过。当我运行这个块时,我得到“流已经被操作或关闭”。见 https://ideone.co
我是一名优秀的程序员,十分优秀!