请问gasx2007大侠做的“不一样的陀螺旋”是怎样做到的?

jeff14 发表于: 2008-6-06 17:04 来源: 扑奔PPT网

原帖地址:
ppt里面的自定义动画只有一个步骤,也就是陀螺旋,但是没见到缩小的步骤,帖子里说有代码,但是似乎也没看到,请问能教教是怎样做到的吗?谢谢
不知道这样发帖是否合适,如果不合适请版主删帖。

[ 本帖最后由 jeff14 于 2008-6-11 09:04 编辑 ]
大家对 请问gasx2007大侠做的“不一样的陀螺旋”是怎样做到的? 的评论
无极 发表于 2008-6-09 10:39:08
看来这位朋友很想洞悉PPT动画的内幕,PPT掩藏了太多的动画细节,对于探索者来说确实充满了诱惑力。虽然PPT给我们提供了它认为足够慷慨的对象模型,但又不愿意把一些重要技术公开,这就使学习PPT程序设计的初学者甚至很多的老手都有点茫然。如:如何进行形状的X,Y轴的变化,它的算法核心是什么?为什么PPT动画的旋转总是围绕中心,围绕Z轴?……诸多疑惑也曾经使无极很是难过,不过,无极是一位程序设计者,通过调试与朋友交流,部分解密了其中的一些细节、算法。
现在在国外的几个地下论坛中,正限量发行一本书《powerpoint Animation Insider》,售价是40美金,无极参与了其中两章内容的编写。这本书没有中文版,目前也不打算在国内发布。
下面给你解释一下Gasx2007的那段代码:
Dim objan As AnimationBehavior '定义一个动画动作对象
    With PowerPoint.ActivePresentation.Slides(1).TimeLine.MainSequence(1).Behaviors '访问幻灯片1时间线主动画序列1的动画动作集合
   
        Set objan = .Add(msoAnimTypeColor) '在动画动作集合中增加一个颜色类型动画。
        With objan
            .ColorEffect.From.RGB = RGB(200, 100, 100) '设置这个颜色动画的颜色变化的初始值和最终值。
            .ColorEffect.To.RGB = RGB(0, 200, 100)
        End With
   
        Set objan = .Add(msoAnimTypeScale) '在动画动作集合中再添加一个缩放动画动作。
        With objan
            .ScaleEffect.ByX = 10 '设置形状由原始大小从X、Y轴缩小为屏幕大小的10%(X)和20%(Y)
            .ScaleEffect.ByY = 20
        End With
jeff14 发表于 2008-6-09 18:47:40
太感谢您的回复了,还有一个问题,我使用ppt的开发工具,打开了vb的编辑器,但是见不到任何的代码,而且如果有代码的话,一般打开的时候ppt会提示禁用了宏,但是这个演示并没有这样的警告,所以觉得非常疑惑
jeff14 发表于 2008-6-09 18:52:37
另外,我在该ppt上,打开了vb编辑器,新建了一个模块,将上述的代码复制粘贴了进去,With PowerPoint.ActivePresentation.Slides(1).TimeLine.MainSequence(1).Behaviors,这句就已经出错,说是无效……
laose 发表于 2008-6-09 22:35:17
VB牛无极

17.2 KB, 下载次数: 47)

seo4587 发表于 2008-6-09 23:29:22
拜见各位牛人!
留贴在此!
赞美一下!:D :$
fy_wdm 发表于 2008-6-10 08:30:56
谢谢楼上的解析。:$ :$ :$
xxhsoft 发表于 2008-6-11 00:42:31
学习学习,天天向上,
无极 发表于 2008-6-11 08:09:13
在PPT中用代码添加自制动作后,其动作信息就被存储了,因此可以不再需要代码。GASX2007用代码添加完动作后,把代码删除了。

至于您提到的第二个问题,也是一些新手经常会遇到的,因为其中涉及到时间线的体系架构。
简单的说,在PPT中每一张幻灯片有且只有一个主动画序列,默认情况下,它是空的,用户需要自己向这个空的集合中添加元素,有两种方法:
(1)通过PPT的“自定义动画”功能。
(2)通过AddEffect方法。
您之所以出现问题,是因为您没有向主动画序列添加任何动画效果,而With PowerPoint.ActivePresentation.Slides(1).TimeLine.MainSequence(1).Behaviors代码的意思是访问主动画序列中第一个动画效果序列中的动作集合。

解决方法:
在第一张幻灯片上添加一个形状,选择这个形状,给它添加上一个动画效果(如:擦除),然后再执行代码,就不会出错了。
无极 发表于 2008-6-11 08:12:11
动感老师就是不同凡响,果然技术出众,思路清晰。
jeff14 发表于 2008-6-11 09:03:53
实在太感谢各位大侠的回答了,
aapla_2001 发表于 2008-6-13 16:51:03
动感老师就是不同凡响,果然技术出众,思路清晰。
rogerchris 发表于 2008-6-13 19:55:30
牛人啊~~佩服佩服:D
bloodcolor 发表于 2008-6-17 00:14:47
vb我就不通了,只好用组合来实现
YINGYING 发表于 2008-6-17 08:55:33
高人呀!是我学习的榜样!
最新PPT模板
最新贴子
PPT热贴