·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

AS2.0 让flash自适应全屏,并且不自动缩放

时间:2011-09-22 16:34CuPlayer.com
全屏分为浏览器全屏和FLASH全屏两种,浏览器全屏不是FLASH可以左右的内容,而且不同的浏览器未必都有效,在这里就不讨论了,具体方式是使用JavaScript去根据屏幕的大小调整浏览器窗口的大小,有兴趣的朋友可以去搜一下相关的知识

  AS2的写法:

  fscommand("fullscreen", "true");
Stage.scaleMode = "noScale";

  1.关于全屏
  全屏分为浏览器全屏和FLASH全屏两种,浏览器全屏不是FLASH可以左右的内容,而且不同的浏览器未必都有效,在这里就不讨论了,具体方式是使用JavaScript去根据屏幕的大小调整浏览器窗口的大小,有兴趣的朋友可以去搜一下相关的知识。

  2.关于FLASH全屏
关于FLASH全屏,我们知道如果对FLASH的内容进行缩放,那么效果上肯定会大打折扣,图片会失真,或者变形。所以FLASH全屏的正解是:实现背景全屏,网站上的所有内容和页面保持固定的相对位置。

   3. Stage类函数
  类型:

  (1) align: 指定FLASH的对齐方式,分为T,B,L,R,TL,TR,BL,BR.每个函数对应哪种对齐方式自己去搜索一下吧

  举例用法:Stage.align="TL";

  (2)height,width :属性,以像素为单位指定舞台的高度和宽度。

  (3)scaleMode: 指定FLASH的内容是否允许缩放。

  (4)onResize=function(){} :调整FLASH动作的时候使用的自定函数,大括号内为自己写的函数,只有当scaleMode为noScale时使用。

  (5)addListener(对象):添加监听对象,就是检测什么时候去改变FLASH大小。

  好了,能列举出来的函数就大概那么多,下面讲讲用法。

   新建一个FLASH,我使用的是MX2004版本,AS2.0,舞台大小800*600。

  1.插入新的一个MC,里面放入你要作为背景的图片,这里要说明一点,就是背景尽量不要使用太复杂的图片,或者真实的图片,因为你在笔记本宽屏的时候就会发现背景会被拉长,比例不对,所以我选用纯色+渐变的效果,,保存完毕,然后拖上舞台,设置名字为bg

  2.在第一帧上加入

  Stage.scaleMode="noScale" //禁止内容缩放
  Stage.align="TL"; //顶端,左对齐
  var jianting:Object=new Object(); //创建一个新的监听器,我定义成jianting
  //设置动作
  jianting.onResize=function(){
  onEnterFrame=function(){
  bg._width=Stage.width;//指定bg这个MC的宽=监听到的浏览器的宽,下同
  bg._height=Stage.height;
  }
  }
  Stage.addListener(jianting);//把浏览器屏幕加入监听对象中
  jianting.onResize();//一进入就执行动作

  好了,播放看看,这样背景是不是一直全屏啦~无论如何拖动。
  现在有人问了,那上面的内容怎么办呢,呵呵,会在下面讲出,其实原理是一样的,只要把你想要实现的东西加到上面function里就行了,如果你有个MC,你想让它一直在屏幕的正中心,如何实现呢?
  原理:MC如果要保持在背景中间,那么它的
  X坐标就是 Stage.width/2-mc._width/2;
  Y坐标就是Stage.height/2-mc._height/2;
  不要和我说你看不懂,看不懂就去翻翻数学课本,里面肯定有更详细的解法。

  现在,你所要做的就是把你认为需要改变位置的MC,一直改变它的X,Y坐标,这样就一直能够固定它的相对位置了,哈哈,是不是很简单啊,其实的确很简单,如果觉得这样变换位置太生硬的话,可以给它加上点缓动的效果,
  比如mc._x+=((Stage.widht-mc._width)/2-mc._x)/5;
  mc._y+=((Stage.height-mc._height)/2-mc._y)/5;
  解释一下缓动的公式,缓动的公式为 位置+=(目的地 - 现在的位置)/速度。
  +=的意思是这个MC的坐标以右边计算出的结果为增量,累计起来计算,知道目的地,就像吃东西,第一次吃50%,第二次吃25%,第三次12.5%类似,吃完100%后,目的地=现在的位置,增量为0了,左边自然就不会再加了。就是这个道理。

  以上举例只是保持居中的位置,如果想让其保持上的位置,或者下,甚至任何位置,发挥你们的数学头脑去计算吧。:D :D

  最后,发布出去的时候,在HTML发布设置里设置长宽都是100,不缩放。

   最最最后,生成的HTML文件用DW打开一下,修改-页面属性-上下左右边距全部设置为0,这样就可以了

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器