在Flash中调用Html的层

2008-04-02 10:50:15来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  本教程需要大家有一些关于HTML, CSS, Flash, javascript 和ASP的基础知识

  用Html文本和Flash一起来制作动画是个很好的方式。 他很的简单, 而且容易上手,只需要使用ActionScript中的getURL()脚本就能够了,比您能想象到的任何其他编成语言(例如javascript)都更方便,功能也更强大。

  请看下面这个情节: 在一个特别工程中,设计师需要Flash 动画运行于页面的顶端,然后在Flash播放后,再显示文本。您能够在Flash中做很多的事情,但是在这例子中不适合用他来在HTML的层中显示文本。

  第一步:布局

  首先创建一个包含层的网页(假如您对层这个概念不熟悉,能够在Google中搜索一下,您会发现有很多有用的东西,是很值得您花点时间看一下的)。在我的例子中,使用了一个导航层,一个用来显示文本内容的层和一个Flash层,如下图所示:

  在<uFlash中调用Html的层 src="/info/upimg/allimg/080403/1838550.jpg">

  我在下面用到的效果是在Flash影片完成播放前隐藏文本内容层,所以第一件要做的事情就是配置层的可见属性为隐藏,其他两个层保持默认的可见属性。

  第二步: javascript

  这里我说明一下: 我是使用Dreamweaver的内置的显示/隐藏脚本,并把他插入到网页的头部。

  无论是自己写的javascript脚本,还是从脚本库或DreamWeaver中拖动一个,您都能够转换图层的显示和隐藏了。使用这个脚本,能够很快地写出自己想要的简单javascript函数。

  上图中的模型实际上要比这个完成的功能更简单。 实际上,一共三个层----内容层和两个包含鼠标上下箭头图像的层,他们是用来滚动内容层的。这些都是需要隐藏直到影片播放完成的东西。这里我没有在flash的时间轴中创建四个不同的脚本,而是创建了一个javascript脚本来很快的显示任何层:

  
<script language="javascript" type="text/javascript">

   <!--

   function MM_findObj(n, d) { //v4.01

   var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length)

   {

   d=parent.frames[n.substring(p 1)].document; n=n.substring(0,p);}

   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i )

   x=d.forms[i][n];

   for(i=0;!x&&d.layers&&i<d.layers.length;i ) x=MM_findObj(n,d.layers[i].document);

   if(!x && d.getElementById) x=d.getElementById(n); return x;

   }

   function MM_showHideLayers() { //v3.0

   var i,p,v,obj,args=MM_showHideLayers.arguments;

   for (i=0; i<(args.length-2); i =3) if ((obj=MM_findObj(args[i]))!=null)

   { v=args[i 2];

   if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v;

   }

   obj.visibility=v; }

   }

   function showLayers() {

   MM_showHideLayers('content','','show')

   MM_showHideLayers('divUpControlMain','','show')

   MM_showHideLayers('divDownControlMain','','show')

   }

   -->

   </script>


  很的简单! 正如所看到的,任何我需要做的就是为每个需要显示的层创建一个脚本函数。 我不是个很强的javascript程式员,肯定更有更好的方式来实现他。

  第三步:在Flash中调用这个函数

  在flash影片的时间轴上需要出现文本内容层的地方插入下面脚本:

  getURL("javascript:showLayers()");

  现在,在HTML网页中的隐藏的层,就能够通过Flash影片来控制他在适当的时候显示出来。但这仍然有个问题,用户每次打开网页,都需要耐心看完影片才能看到内容文本。下面是我的解决方案。

  第四步:挽救人们的耐心

  当用户第一次访问这个页面的时候,能够做个Cookie记录,当用户再次访问的时候,服务器读取Cookie就能够知道他们是否已看过影片了。假如用户已看过影片了,就能够用最后的一帧和一个小的播放按钮来代替影片, 用户就能够直接看到文本内容了。利用Google,花点时间您能够用Perl,PHP,javascript等任意一种语言来做这个功能。这里ASP是我所选择的武器。代码一共有两部分:

  1)检查Cookie并显示适当的内容:

  2)窗体顶端

  


  <div id="Flash" style="position:absolute; left:0; top:0; width:760;

  height:160; z-index:1; visibility: visible">

  <%

  If Request.Cookies("viewed")("force") = "" Then

  %>

  <p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

  codebase="http://download.macromedia.com/pub/shockwave/cabs/

  flash/swflash.cab#version=4,0,2,0"

  width="760" height="160">

  <param name="movie" value="swf/force.swf">

  <param name=quality value=high>

  <param name="loop" value="false">

  <param name="menu" value="false">

  <embed src="swf/force.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"

  type="application/x-shockwave-flash" width="760" height="160"

  loop="false" menu="false">

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FLASH实现动态模糊效果

下一篇: Flash中俯视视角的动画背景