您的位置:首页 > 运维架构 > 网站架构

网站前端开发与动画相关常见问题解答

2014-03-21 11:19 253 查看
网站前端开发与动画相关常见问题解答
问题解答说明关键字
1插入宽度1000像素的头部动画或者minisite动画后,左右超过1000像素位置的画面分界明显,好像画面断层了。头部动画或者MINISITE插入页面时,一般宽度设为100%横向全屏,高度按原先的动画高度设定现在版面及动画大多是按宽屏来设计的,元素往往不局限与版块宽度的1000以内。公司动画一般都是按1440来设计,只是发布的时候按1000或者1440宽度发布而已,实际内容还是1440的,出于适应用户屏幕分辨率的考虑,所以,应当把页面中的动画宽度设成100%自适应屏幕。

动画宽度
横向全屏
自适应
2插入1440的动画后,页面出现横向滚动条同上同上横向滚动条
3Minisite专题提供的一堆swf文件中哪个是主文件,所有文件都需要上传吗。一般默认主动画文件为index.swf,其它swf为子文件以供主动画文件读取,或者还存在图片目录或者xml文件;除了fla源文件可以删除外,其余文件需要按所提供的文件结构全部上传。按具体情况协商Minisite
文件上传
4Flash和页面能否放于不同服务器(域)下页面和swf文件可以分开存放,如果Flash需要读取swf子动画的情况,因为flash路径是跟随页面的,所以在读取上需要用到绝对路径,并且需要解决跨域读取问题。按具体情况协商跨域存放
绝对路径
5网页底图被动画背景色块遮盖住了页面Flash参数中加入
<param name="wmode" value="transparent">
并且embed标签里加入
wmode="transparent"

要实现flash背景透明,在IE中需要加这样一个值:
<param name="wmode" value="transparent">
而在Mozilla、Firefox浏览器中起作用的是这个标签<embed>,用户兼容性考虑,所以还要在<embed>标签内加入属性:
wmode="transparent"

透明背景
遮盖
6弹出层被页面上的flash遮盖住了页面Flash参数中加入
<param name="wmode" value="opaque">
并且embed标签里加入
wmode="opaque"
弹出层
遮盖
7Flash在页面中无法发送URL请求,或者无法发送页面js调用请求页面Flash参数中加入
<param name="allowScriptAccess" value="always"/>
或者
<param name="allowScriptAccess" value="sameDomain"/>
并且embed标签里加入
allowScriptAccess="always"
或者
allowScriptAccess="sameDomain"

AllowScriptAccess 参数,它可以用来控制是否允许执行来自 swf 本身对外脚本访问。
当 AllowScriptAccess 设置为 "never" 时,禁止所有脚本执行对外操作;
当 AllowScriptAccess 设置为 "always" 时,允许随时执行脚本操作;
当 AllowScriptAccess 设置为 "sameDomain" 时,仅当 SWF 文件和网页位于同一域中时才允许执行脚本访问操作。
脚本访问
跨域
8Flash在页面中无法跨域读取动画、图片或者XML文档1、原因可能同上

2、数据端缺少跨域策略文件
在数据端服务器根路径下建立crossdomain.xml文件,内容可以如下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

flashplayer中,要跨域必须要有策略文件。
左侧例子表示该服务允许任何外域来访问。
关于crossdomain.xml的放置目录问题,有如下解决方案,可放置在:
1) 容器的根目录。
2) 如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flash/flex中就需要在初始化as代码时应用例如 Security.loadPolicyFile("http:// localhost:8080/aaa/crossdomain.xml");
这样,外部Flex访问该服务发布的WebService时,flashplayer首先找的就是crossdomain.xml文件,若安全机制设置为允许访问,则访问成功。

脚本访问
跨域读取
外部图片
XML文档
9Flash与页面JavaScript或ActiveX通讯时,Flash无法从页面获得数据。在OBJECT标签中,设置id属性;
在EMBED标签中,设置name属性对应OBJECT的id属性,并且确保EMBED标签中没有使用id属性
例如:<object id="myFlash" classid="......>
例如:<embed name="myFlash" swLiveConnect="true" src="javascript_to_flash.swf" ......></embed>
JS通讯
获取数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: