• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 休闲生活 > 正文

    基于COM技术开发PowerPoint的Flash教学课件库插件

    时间:2020-09-12 08:02:10 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:在PowerPoint演示文稿制作过程中巧妙地添加运用Flash动画,能够达到内容丰富,生动形象的目的,但目前将Flash动画添加到幻灯片中的步骤相对繁琐。针对以上不足之处,利用COM技术,VB.NET编程语言,基于.NET平台开发一个Flash教学课件库,并将其作为插件加载至PowerPoint软件中,能够实现Flash动画在PowerPoint中地有效管理并简化其插入演示文稿步骤的功能。

    关键词:COM;COM组件;PowerPoint软件

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)20-4722-04

    PowerPoint(以下称PPT)软件因具有功能丰富、易学易用等特点,已成为广大教师制作课件的常用工具。但是由于其本身的动画功能有限, 在表现手段和交互性上都略显不足。而Flash 动画具有人性化、智能化和交互性强的特点,因此,在PPT 中嵌入Flash 动画可以增强演示文稿的表现力, 使内容形象生动。然而,在PPT中现有的添加 Flash动画的方法都相对复杂,需要先创建对象或是利用Active X控件等多个步骤才能完成添加工作。同时,随着Flash的使用频率逐渐增加,需求量也逐步加大。

    利用COM技术,使用VB.NET语言在Visual Studio.NET平台上开发一个Flash教学演示课件库,并作为插件加载至PPT软件中,可实现在PPT软件中有效管理Flash动画、简化演示文稿中添加Flash动画流程的功能。

    1 COM技术简介

    COM(Component Object Model,组件对象模型)技术是一种独立于编程语言、平台的基于对象的编程规范。遵循该规范编写的COM组件实质上就是由动态连接库(DLL)或可执行文件(EXE)组成的二进制可执行代码。COM技术的中心思想就是在二进制级别上重用能够被独立生产获得和配置的软件单元。每一部分组件都有其特定的界面和所能提供的服务。这样就提供了一种创建可重用组件的有效机制,提高了软件开发效率。

    COM组件可以为应用程序、操作系统以及其他组件提供服务,可以在不增加复杂性的情况下扩展应用程序的功能。利用COM技术可以实现用户程序和office的无缝集成,使软件具有良好的可维护性和扩展性。

    2 Office组件的设计原理与实现

    2.1 office软件与.NET平台实现交互

    每一个Office软件都提供了一个IDTExtensibility2接口,COM组件通过该接口连接到PowerPoint中。开发者使用支持COM组件开发的工具,例如在Visual Studio.net平台,使用VB.NET语言,实现该接口的5个方法:OnConnection()、OnDisconnection()、OnAddInsUpdate()、OnStartupComplete()、OnBeginShutdown(),继而导入该接口,可以编写扩展PowerPoint相应功能的代码。

    在.Net Framework中,提供了一项叫做COM Interop(互操作性)的服务,它使.NET Framework对象能够与COM对象通信。Office的COM组件,可以用于操作COM,同时,Office所对应的PIA(官方互操作程序集,指“官方”发布的对于某个COM组件的.NET DLL)用于.NET。Office PIA按照Office的各个组件(PowerPoint、Word等)分成多个单独的程序集。比如PowerPoint对应的PIA程序集是Microsoft.Office.Interop.PowerPoint.dll,程序集中的类放在命名空间Microsoft.Office.Interop.PowerPoint中。

    2.2 创建COM组件

    Visual Studio.NET 提供共享的外接程序项目模板支持Office COM组件的开发。新建项目时,选择“共享的外接程序”模板进行创建,项目创建向导将创建一个 Visual Basic.NET类库项目,同时创建一个实现 IDTExtensibility2接口的 Connect 类。此项目具有对 Extensibility 和 Office 程序集的引用,并在生成设置中为COM Interop注册。除类库项目外,该向导还将生成一个安装项目,该项目可用于在其他计算机上部署COM组件。

    2.3 COM组件注册

    由于本文中的COM组件与PowerPoint软件实现无缝连接,因此需要向Office应用程序注册自身。COM组件可以向全部Office应用程序进行注册, 亦可以向特定的Office应用程序进行注册,以使Office宿主应用程序可以识别COM组件并根据其注册的键值进行控制。为了向某个特定的Office应用程序进行注册, COM组件使用ProgIdAttribute作为项名称在HKEY_LOCAL_ MACHINE\Software\Microsoft\Office\OfficeApp\Addins\ProgIdAttribute位置下创建一个子项, 其中OfficeApp指定Office应用程序名称, 可以是Word、 PowerPoint等。在此注册项下可以使用的注册键有FriendlyName、Description、LoadBehavior。LoadBehavior指定COM组件的装载行为,确定宿主应用程序如何加载COM组件。

    3 Flash教学课件库组件具体实现

    3.1 Flash教学课件库组件加载至PowerPoint

    在用户新建或是打开某一PowerPoint演示文稿时,将看到如图2,图3所示的图片。

    实现该功能的主要代码在创建COM组件项目后自动生成的Connect.vb类中。定义Connect 类是用于实现IDTExensibility2 接口的框架代码。Connect具有两个对象成员变量:applicationObject、addInInstance。applicationObject代表对宿主应用程序的引用,addInInstance代表对COM组件自身的引用。由于所演示的COM组件专用于PowerPoint,可以将applicationObject的类型声明为:Microsoft.Office.Interop.PowerPoint.Application下面为Connect.vb类中部分主要实现代码,OnStartupComplete()方法是在宿主应用程序在启动期间已连接了加载项的情况下被调用,执行时,将完成在PowerPoint演示文稿中添加名为“Flash课件”按钮地操作。其中代码主要内容如下:

    Dim oCommandBars As CommandBars

    Dim oStandardBar As CommandBar

    Dim Caption As String = "Flash课件"

    Dim Missing As Object = System.Reflection.Missing.Value

    oCommandBars= CType(applicationObject.GetType.InvokeMember("CommandBars", BindingFlags.GetProperty, Nothing, applicationObject, Nothing), Microsoft.Office.Core.CommandBars) ‘初始化CommandBar

    oStandardBar = oCommandBars("Standard")

    ‘获取“标准”CommandBar对象

    MyButton = CType(oStandardBar.Controls("Flash课件"), CommandBarButton)

    MyButton.Tag = "Flash课件" ‘按钮标签内容

    MyButton.OnAction = "!"

    MyButton.Visible = True ‘初始化工具栏按钮

    Dimo Name As Object= applicationObject.GetType().InvokeMember("Name", BindingFlags.GetProperty, Nothing, applicationObject, Nothing)

    AddHandler MyButton.Click, AddressOf MyButton_Click

    ‘添加单击按钮事件

    3.2简化Flash动画插入演示文稿步骤

    PowerPoint对象模型[2],如图4。

    PowerPoint Application为应用程序对象,是PowerPoint对象模型的核心,通过该对象可以访问到PowerPoint的其它子对象,还可以对PowerPoint的一些事件进行响应。Slides是幻灯片对象Slide的集合,包含了所有的幻灯片。TextRange对象是每张幻灯片中的文本输入框,Font、Text是TextRange对象的属性。

    根据PowerPoint对象模型,实现将Flash动画插入PowerPoint中的功能:

    实现Flash动画添加至当前幻灯片主要代码为:AddToPPT("CurrentPPT");

    实现Flash添加至新幻灯片主要代码为:AddToPPT("NewPPT")。

    其中AddToPPT()方法实现了简化向PowerPoint演示文稿中添加Flash动画步骤的功能,主要代码如下:

    Sub AddToPPT(ByVal PPTNum As String)

    ……

    ‘根据PPTNum参数,设置Flash插入位置

    If PPTNum = "CurrentPPT" Then

    objSlide= objSlides.Item(objApp.ActiveWindow.Selection.SlideRange.SlideNumber) ‘插入到当前页

    Else

    objSlide=objSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)

    ‘在首页新增一张幻灯片并插入Flash

    End If

    objTextRng = objSlide.Shapes(1).TextFrame.TextRange

    objTextRng.Text = dtpath.Rows(0).Item(0).ToString

    ‘设置Flash标题

    objTextRng.Font.Name = "Comic Sans MS" ’设置字体

    objTextRng.Font.Size = 30 ‘设置字号

    ……

    End Sub

    在PPT中单击“Flash课件”按钮,出现Flash课件库管理软件窗体,并在窗体中进行相应操作,即可达到在PPT中方便简易地插入Flash动画的目的,具体实现如图5所示。

    4 结束语

    PowerPoint是最常使用的多媒体课件制作环境,而Flash动画是最容易获得的教学资源之一,但是以往的插入操作繁琐,缺乏扩展性。利用COM组件技术开发Flash教学演示课件库,不仅简化Flash的插入步骤,而且可视为对PowerPoint功能的无缝扩展,可以衍生出更加符合用户需求的个性化和专业化功能。显然,这一技术也适合于所有Office应用软件。总而言之,借助于.NET 平台的强大开发功能, 结合Office 各应用程序丰富的对象模型和功能, 使用基于COM 组件的插件技术,为设计出一个更加符合用户需求的集成化教学课件设计环境提供了良好可能性。

    参考文献:

    [1] 黎浩宏.Office COM加载项的研究与实现[J].电脑知识与技术2010(21).

    [2] 何春华,胡迎春. PowerPoint上机操作测试自动评价的研究和设计[J].广西工学院学报,2011,9(22).

    [3] 初宇.基于COM技术开发软件组件的研究[J].信息技术, 2013(2).

    [4] 陈瑞迎,刘宝华.ASP.NET使用COM组件处理EXCEL表格[J].电脑知识与技术,2012(22).

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网