使用Lingo注册ActiveX

由于Director自身的局限,有时有的功能我们得借助ActiveX来实现。比如说,我在一个项目中要用到一个版本为Flash 9的swf,而目前Director mx 2004是最多支持Flash 9的swf,我们可借助Shockwave Flash Object控件来解决这个问题。

如果我们要在本机上注册这个控件(FlDbg9c.ocx),只要上Abobe的官方网站下载安装Flash Player 9 AX.exe即可。当然如果你的电脑安装有Flash cs3和Flex SDK 2等软件,这个控件也就自带了。当然,不执行执行安装文件也可以。可以通过Regsvr32命令来实现。

这里又有一个问题:我们需要在客户机上也注册这个控件。一种方法是通过上述的Regsvr32命令。但这促方法不灵活,因此它在注册前不能判断客 户机上是否已经注册过该控件,因此我们此处建议使用Lingo来注册。

下面是针对Adobe的FlDbg9c.ocx: 先在director编辑面板中得知其的classid号,如下图。再点击copy按钮粘贴classid号就可以了。

ActiveX Control URL

将FlDbg9c.ocx放置在Di电影所在根目录下,添加以下代码:

on startMovie()
  found =ActiveXControlQuery("{D27CDB6E-AE6D-11CF-96B8-444553540000}") 
  if not found then 
    ActiveXControlRegister(_movie.path&"FlDbg9c.ocx") 
  else 
    exit 
  end if
end

其中ActiveXControlQuery命令用来在注册表中通过classid查找该该控件,如果返回0表示控件未安装或注册。最后用ActiveXControlRegister命 令来注册该控件。

发表评论