时间线

My Life My Style

AS3 的全屏控制

一般而言FLASH不应用AS3的话,全屏问题都可以通过以下一些方法或代码进行处理或设置。可当你用上AS3的时候,你会发觉AS3对场景和影片的控制跟AS2完全不同…简直找不到相似的地方。当然,即便你使用CS3版本的FLASH软件也是可以在新建的时候选择AS2来进行开发滴~只要你不选择AS3,那么如下的一些全屏控制依然适用(HTML、JS部分是一直都可借鉴滴,这里特指AS部分的差别)

以下内容出自Blueidea经典论坛】
========================
FLASH 全屏有二类四种:

1、不用浏览器直接用FLASH播放器播放的类型:
    A、不显示FLASH播放器菜单栏的全屏(类似屏保效果),在第一帧处的Actions用FS Command 命令,在For standalone player 选项中选择fullscreen 为true 即可。运行中可按 ESC 退出或设一按钮
在Actions上用FS command ,在For standalone player 选项中选择quit 也可退出。附带说一句:
For standalone player上的所的选项只适合于用FLASH 播放器播放的情况。
    B、如果仅是要使SWF文件占满FLASH播放器的窗口,什么也不需要做。直接击SWF文件。

以上一类全屏多用在非网络的运行。

2、第二类是在非FLASH 浏览器(如IE)中运行的全屏:
    A、只占满浏览器:这种情况相对简单,不管您设的FLASH是否是800*600,只要在调用SWF文件的HTML文件中将WIDTH= HEIGHT= 后面的两个参数设为100%即可,当然也可以在FLASH 导出HTML文件的设置中进行设置,方法是:打开FILE菜单:选Publish Settings 弹出导出设置对话框:在HTML标签下的Dimensions选项中下拉后选中Percent,并在WIDTH 和HEIGHT 框中填100,运行这个与SWF同名的HTML文件则与直接加语句同效。这种占满浏览器的全屏与SWF文件的设置无关,但最好设置的大小在700*400附近,否则容易导致图像特别是汉字的失真。

    B、不显示浏览器菜单栏、工具栏的全屏。这种全屏稍稍复杂,也与FLASH的设置无关,但要借助JavaScript来完成。方法是:在HTML文件中<head></head>间加入以下代码:
<script language="JavaScript">
<!–
window.open("your.swf","","fullscreen=1,menubar=no,width=800,height=600")
//–>
</script>
注:your.swf 改为您要播放的SWF文件名。

也可以在SWF文件的第一帧Actions上的URL 命令上加上:
javascript:window.open("your.swf","","fullscreen=1,menubar=no,width=800,height=600")
注:nfd.swf 改为您要播放的SWF文件名。

这种全屏也是类似屏保,用ALT+F4或设置按钮退出。把fullscreen设为=0,则只是不显示浏览器菜单栏、工具栏的全屏。

好了,关于全屏的所有方法就是如此,您可以根据自己的需要试试看(以上以IE为例)。
    
——————————————————————————–
[ 这是关于全屏播放的的补充 ]
用 FLASH 的 player 播放时,即使没有设置 FSCOMMAND 也可以用 CTRL+F 的方式全屏播放

全屏播放终极卷轴 [转帖]
作者:starwind

  开始接触Flash后,经常到一些国外相关站点闲逛,某天竟然发现Flash网页竟可以做的像屏幕保护程序一样,覆盖整个屏幕,我内心着实震撼不小,从此就关注起这项技术来。经过学习和自己琢磨,现在颇有收获,好东西不敢私藏,拿出来与大家共享,同时也就正于大方之家。

  首先我们要明确一个概念,所谓Flash的全屏播放,不是指swf文件在播放器中的全屏播放,也不是指 swf 文件占满整个浏览器窗口(我称之为“撑满”^_^),而是指包含Flash网页的网页在浏览器中播放时,效果就象屏幕保护一样,除了Flash,没有任何别的东西。

  好,我们开始干吧,分两步实现这一效果。

  怎样撑满浏览器窗口又不出现讨厌的滚动条呢?我们第一步就解决这个问题。达到这一目的的方法有多种,经过我的研究,发现最简单而且兼容性最好的方法(我们总是要考虑在 Netscape 上的效果,不然就照顾不到那可敬的 10% 的使用者)就是使用隐形帧,我们先创建一个 html 文件,打开源文件窗口,删去所有内容,拷贝入以下代码:

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

  我解释一下上面的内容,这是打开一个包含上下两帧的浏览窗口,上面的一帧放入我们想要大家看到的装有Flash的页面,我这里用的是"learn_fullscreen.htm",这里你可以改成你的页面地址,这个页面占有浏览器窗口从上到下9 9%的面积(为什么不100%,因为那样的话Netscape会死翘翘),下面一帧放的是一个陪衬页,如果你只考虑IE浏览者的话可以空着,但那样的话Netscape会出现警告窗口,所以为了那可敬的10%浏览者我们最好还是做好这一帧,我用的的是" learn_blank.htm",注意这一页的背景色要改成你的Flash的背景色,因为这一页会在浏览器窗口的下面呈现一条细线。其他的几条标签就是去掉滚动条的意思。

  好,下面我们编辑好 learn_fullscreen.htm 文件,为了在上面和左面不留空隙,我建议大家最好先插入一个层,层的位置是(0,0),它的宽高我们可以不管,然后在层中插入你要播放的 Flash 动画,你可以大胆的使用800*600的动画,再也不会出现讨厌的滚动条了。

  下面的工作是激动人心的:去掉一切条条框框!为了达到这点,我们不得不借助几条JavaScrpit语句。我们在要链接到全屏播放网页的网页的<head>标签内加入这几条语句。

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

  然后,在链接处使用下列语句。

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

  "learn_flashfullscreenindex.htm"改为你自己的包含要全屏播放的网页的帧设定页的地址,“先点这里看效果”改成你自己的链接文字。其他的语句最好不要修改,这一设定在800*600的分辨率下能取得最好效果。

  通过这寥寥几条语句,我们解决了全屏播放的问题,而且这一方法还兼容IE4.0和Netscape4.0以上版本的浏览器,你不要费力气想去掉Netscape中屏幕上方的title条,这是永远不可能。

  最后我想提醒大家的是,在使用全屏播放时,你可以放心地插入800*600的Flash动画,同时,别忘了加入一个quit按钮,如果你没有加入这个按钮,而碰巧一个浏览的网友不知道按ALT+F4离开,面对全屏而手足无措,这会使你很丢面子的^ _^。

  怎样quit呢,在Flash按钮的get URL action中加入以下语句即可。

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

注这也是 JAVASCRIPT 在 FLASH 中的简单运用,大家举一反三。

  好,万事大吉,让浏览者看到你的动画全屏播放时逼人的震撼力吧

还有一个小补充:
    用《全屏播放终极卷轴 [转帖] 》中的方法会打开一个新的浏览窗口并播放全屏(IE下)flash,有的时候如果需要在全屏播放FLASH的时候关闭原先用来打开这个全屏窗口的父窗口,让浏览者感觉始终在一个浏览器窗口中预览,可以在s w f文件的第一帧中加入一个geturl的action,内容为"javascript:opener.window.close()"

====================================

那AS2之前用的“FS Command”既然不能用,那AS3应该怎么处理呢…

首先AS3和AS2控制的语法语句有了很大的改变,比如现在as3的全屏实际上应该这么写:

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

全屏的点击实现方式:

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

全屏按钮的触发方式:

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

而同时,此前常用的影片场景自适应控制代码应该这样来写:

    flash播放器默认的缩放showAll模式。这种模式下,flash影片会在影片的初始比例缩放以适应播放器的尺寸。如果播放器的外观比例和影片的外观比例不一致会使影片出现边框。在主要的程序中设置影片为showAll模式格式如下(不要忘记置入flash.display.StageScaleMode类)

    stage.scaleMode = StageScaleMode.SHOW_ALL;

      注意stage不是一个全局对象,而是任何一个可视化对象的一个属性,因此这个语句仅仅适用于sprite或可视化类的扩展类。

    noBorder模式缩放影片适应播放器会保持原来的外观比例;当然,它会强制播放器显示没有边框的场景。如果播放器的外观比例和影片比例不一致,在边缘的影片的一部分会被切割掉。设置影片为noBorder模式:

    stage.scaleMode = StageScaleMode.NO_BORDER;

      exactFit模式缩放影片适应播放器,它会改变影片的外观比例,如果必须,会匹配播放器。结果是影片总是恰好充满播放器,但是影片的元素可能会变形:

    stage.scaleMode = StageScaleMode.EXACT_FIT;

      在noScale模式中影片不能缩放,它会保持原来的尺寸和外观比例而不管场景的尺寸。使用noScale模式不要忘记设置影片的对齐排列。

    stage.scaleMode = StageScaleMode.NO_SCALE;

      scaleMode属性的值不会阻止用户通过右键菜单缩放影片。然而,你可以关闭菜单中的那些选项。

~~~~~~~~~~~~~~~~~~~~

怎样,区别还是很大的吧~刚刚弄Flash的时候忘了选择AS2&AS1版本的AS,直接基于AS3开始弄了。本来呢导出的时候选择AS2即可~但大伙都往AS3上奔了,咱也还是潜心学习学习来得好,逃避选择自己熟悉的方式虽然不会花费解决问题的时间,但是同样也学不到新的东西不是:~^_^

以上解决问题的时候逛了论坛翻了手册也Goolge了几把…相关的各种解决方案一并放上来供有需要的朋友参看吧~

发表评论

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Connecting to %s

加关注

Get every new post delivered to your Inbox.