如何制作window移动的动画效果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何制作window移动的动画效果相关的知识,希望对你有一定的参考价值。
参考技术A 分类: 电脑/网络 >> 程序设计 >> 其他编程语言问题描述:
delphi,vc代码都可以
或思路,关键api
-----
不要
用循环生生的移动窗口的代码
如果有专门的api更好
谢
解析:
在 VC 中可以使用 AnimateWidow函数 实现动画。该函数在Windows 98 后都支持,可以实现滚动 幻灯等效果。下面介绍使用方法:
(1)首先需要在工程里的StdAfx.h文件靠前位置加上如下定义
#undef WINVER
#define WINVER 0X500
那是因为在AnimateWidow函数的实现中有一个判断宏 需要将 WINVER定义到0x500
(2)接下来就可以使用该函数了
BOOL AnimateWindow(HWND hwnd,DWORD dwTime,DWORD dwFlags );
第一个参数指要显示出来的窗体句柄,第二个参数为显示所用的时间,第三个参数表示显示标记。
具体参数的取值可以到 MSDN 中查找,下面的可以做为参考
AW_SLIDE 使用滑动动画效果,缺省为滚动方式,该标志在设置AW_CENTER时将被忽略
AW_ACTIVATE 激活窗口,该标志不能和AW_HIDE一起使用
AW_BLEND 使用一种退色效果该标志只有在窗体为置顶窗体时才使用
AW_HIDE 隐藏窗体,默认为可见
AW_CENTER 当设置HIDE时从四周向中心,否则中心向四周
AW_HOR_POSITIVE 从左向右动画显示窗体
AW_HOR_NEGATIVE 从右向左动画显示窗体
AW_VER_POSITIVE 从上到下动画显示窗体
AW_VER_NEGATIVE 从下到上动画显示窗体 最后四个参数当同时使用CENTER时将被忽略
示例:
AnimateWindow(GetSafeHwnd(),1000,AW_CENTER); 从中间向外显示
AnimateWIndow(GetSafehwnd(),1000,AW_CENTER | AW_HIDE); 从外向中间隐藏.
如何制作简单的动画效果
【中文标题】如何制作简单的动画效果【英文标题】:How to create a simple animation effect 【发布时间】:2015-06-01 09:49:30 【问题描述】:是否有可用的代码示例说明如何在 react-native 应用程序中使用 JPG 进行 2D 变换(例如旋转和缩放),也许以教程中的代码为起点?
如果可能,查看以下两种情况的代码会有所帮助:
1) automatically apply a transform when the app is launched
2) apply a transform after different types of user gestures
在未来的某个时候,看看如何创建 3D 变换和动画效果会很有趣。
【问题讨论】:
React Native 动画 API 已经落地。查看黑客新闻的链接! news.ycombinator.com/item?id=9872996 【参考方案1】:更新:您可以在我的示例应用程序中查看整个示例:https://github.com/grgur/react-native-memory-game
Animation 现在是 AnimationExperimental,所以我们需要修改 zvona 的解决方案。
首先,确保RCTAnimationExperimental
是一个链接库
如果没有,请按照以下步骤操作:
-
导航到
node_modules/react-native/Libraries/Animation/
将RCTAnimationExperimental.xcodeproj
拖放到库(应如上图所示)
点击你的项目名称(在上面的例子中,我的项目名称是Memory)
切换到构建阶段选项卡
展开Libraries/RCTAnimationExperimental.xcodeproj/Products
将libRctAnimationExperimental.a
拖到Link Binary With Libraries
好的,最困难的部分现在结束了。转到您的 JavaScript 文件。动画不再是 react-native 包的一部分,所以我们必须明确地包含它。
var React = require('react-native');
var AnimationExperimental = require('AnimationExperimental');
好的,冠军,你准备好制作动画了。确保你知道你在制作什么动画。您将制作动画的视图称为node
。
AnimationExperimental.startAnimation(
node: this.refs.image,
duration: 400,
easing: 'easeInQuad',
property: 'opacity',
toValue: 0.1,
);
就是这样!
在撰写本文时,可用属性为:opacity
、position
、positionX
、positionY
、rotation
、scaleXY
【讨论】:
添加 RCTAnimation 库,路径应该是 node_modules/react-native/Libraries/**NativeAnimation**/ 对于 RN 0.38【参考方案2】:目前,这是一个更复杂的过程,我正计划就此写一篇博文。不过,作为一个简短的开始,我在这里写一些东西。
第一个问题是 RCTAnimation / RCTAnimationManager 根本不存在,如果您使用 react-native init [ProjectName]
(https://github.com/facebook/react-native/issues/226) 创建项目。
您需要从左上角的加号将其添加到 XCode:“将文件添加到 [ProjectName]”。然后导航到node_modules > Libraries > Animation > RCTAnimation.xcodeproj
。导入后,需要在项目中将其拖到Libraries
下。
然后你需要打开标签Build Phases
。那里有菜单Link Binary With Libraries (x items)
。从名为libRCTAnimation.a
的RCTAnimation.xcodeproj
文件下的Products
拖动到菜单。
现在,您可以构建项目以支持动画。我对 XCode 不是很熟悉,所以可能有一种更简单的方法来实现这一点,但我是这样排序的。
第二个问题是并非所有可用(或计划)的功能都在那里。至少我在屏幕上看到任何东西之前经历了反复试验的丛林。
尝试例如这段代码首先是为了充分证明动画是有效的:
var
Animation,
AppRegistry,
StyleSheet,
Text,
View
= React;
var styles = StyleSheet.create(
test:
width: 400,
height: 400,
backgroundColor: 'blue',
opacity: 0
);
var AnimationTest = React.createClass(
componentDidMount ()
Animation.startAnimation(this.refs['this'], 400, 0, 'linear', opacity: 1);
,
render ()
return (
<View ref='this' style=styles.test>
<Text>Just an animation test</Text>
</View>
)
);
AppRegistry.registerComponent('AnimationTest', () => AnimationTest);
这应该会让你继续前进。如果您需要任何进一步的帮助,请通知我。
如果我成功地以博客文章的形式编写了更完整的说明,我会将其更新为这个答案。
【讨论】:
非常好。它对我来说真的很顺利。感谢您的明确解释。 谢谢。作为一个 Xcode 新手,我错误地打开了错误的 Build Phases 选项卡......你想将 libRCTAnimation.a 放在你的 MainProject.xcodeproj 不会再工作了。用 API 略有不同的 AnimationExperimental 替换 从 react-native 0.38 开始,RCTAnimation.xcodeproj 生活在@node_modules/react-native/Libraries/NativeAnimation/。【参考方案3】:查看 2048 演示应用程序,了解 RCTAnimation 库的使用示例:
https://github.com/facebook/react-native/tree/master/Examples/2048
它不使用任何特别复杂的变换,但会为各种元素的position
、opacity
和scaleXY
设置动画,代码如下所示:
Animation.startAnimation(this.refs['this'], 300, 0, 'easeInOutQuad', scaleXY: [1, 1]);
【讨论】:
感谢您指出示例 - 我完全错过了这些!以上是关于如何制作window移动的动画效果的主要内容,如果未能解决你的问题,请参考以下文章
[每天进步一点点~] uni-app css 制作雷达扫描、波浪移动动画效果