创建一个流式的网站布局

news/2024/5/13 14:48:37/文章来源:https://blog.csdn.net/lihe111/article/details/4357206

在这篇文章中,我们来介绍一下如何实现一个流式的网站布局,原文地址在:

http://flash.tutsplus.com/tutorials/web-design/build-a-fluid-website-lay...

在开始之前,首先介绍一下什么是一个流式的布局。简单的说,流式的布局就是一个根据屏幕的尺寸可自行改变位置以取得相对定位的一种布局方式。在网页的HTML中流式布局很常见,比如可以设置一个DIV的宽度是100%,而里面的元素可以居于DIV的右侧,当浏览器的宽度发生改变,这个DIV的宽度的像素值就会发生改变,而内部的元件的位置也会做出相应的调整。在这篇文章里,就会介绍一下如何在Flash里面实现这种方式。当你试图缩放浏览器窗口的时候,你会发现所有的元件都会自行改变自己的位置。

源代码下载:

http://flashtuts.s3.amazonaws.com/054_FluidWebDesign/source.zip

示例演示:

http://flashtuts.s3.amazonaws.com/054_FluidWebDesign/website.html

使用这个功能,我们需要创建ActionScript 3的类文件,来确保可以在Flash里面实现流式的布局。在这个示例里创建的ActionScript类文件可以很方便的移植到其它的项目中。

步骤一:流式布局图解

如下面的图片所示,所有的元件都会通过“fluid objects”根据浏览器的尺寸而改变自己的位置。

步骤二:Fluid Object的定位方式

每一个fluid对象都包含了对齐属性,属性包括x,y,x offset,y offset(相对于x,y的偏移量),这几个属性决定了对象该如何定位。

设置x和y都为0,意味着fluid object将定位在屏幕的左上角。而设置x和y都是1,则意味着fluid object将定位在屏幕的右下角。同样的,设置0和1代表屏幕的左下角,而设置1,0则代表右上角。它们的具体位置的像素值则是根据屏幕的尺寸计算出来的。

offset X和Y定义元件的偏移量,这个非常有用,因为元件的默认注册点是0,0,而你通过设置x,y都是0.5的时候,元件并没有居中(由于元件本身具备宽度和高度属性)。这个属性可以帮助你实现完美的居中效果。

步骤三:创建一个目录来存放类文件

在工作目录中创建一个名为“FluidLayout”的目录,这个目录用于存放所有的类文件。

步骤四:创建一个新的ActionScript类(FluidObject.as)

创建一个新的类文件,命名为“FluidObject.as”,保存到步骤3创建的目录中。这个类将包含当浏览器缩放的时候改变元件位置的属性。

步骤五:生成的类代码

 

  
  1. package FluidLayout {
  2. /* Add import classes here */
  3. public class FluidObject {
  4. /* Declare instance variables here */
  5. /* Constructor of the class */
  6. public function FluidObject(target:DisplayObject,paramObj:Object)
  7. {
  8. }
  9. /* Function that repositions the monitored object */
  10. protected function reposition():void
  11. {
  12. }
  13. /* Function that is called when the RESIZE event is fired */
  14. protected function onStageResize(e):void
  15. {
  16. }
  17. }
  18. }

 

步骤六:实现

首先导入需要的类文件,包括flash.events.Event,flash.display.*。然后定义变量,实现构造方法,最后实现重新定位的方法(reposition),并实现当场景尺寸发生改变的时候的侦听方法。最后完成的类代码是:

 

  
  1. package FluidLayout {
  2. /* class needed on resize Event */
  3. import flash.events.Event;
  4. /* classes needed for MovieClip and DisplayObject */
  5. import flash.display.*;
  6. public class FluidObject {
  7. /* alignment parameters */
  8. protected var _param:Object;
  9. /* target object to be monitored */
  10. protected var _target:DisplayObject;
  11. /* stage instance of the flash document */
  12. protected var _stage:Stage;
  13. /* Setter for the alignment param */
  14. public function set param(value:Object):void {
  15. _param=value;
  16. this.reposition();
  17. }
  18. /* Constructor of the class */
  19. public function FluidObject(target:DisplayObject,paramObj:Object)
  20. {
  21. /* Assign the instance variables */
  22. _target = target;
  23. _param = paramObj;
  24. _stage = target.stage;
  25. /* add event handler for stage resize */
  26. _stage.addEventListener(Event.RESIZE, onStageResize);
  27. /* reposition the object with the alignment setting applied*/
  28. this.reposition();
  29. }
  30. /* Function that repositions the monitored object */
  31. protected function reposition():void
  32. {
  33. /* get the current width and height of the flash document */
  34. var stageW = _stage.stageWidth;
  35. var stageH = _stage.stageHeight;
  36. /* update the x and y value of the monitored object */
  37. _target.x = (stageW * _param.x) + _param.offsetX;
  38. _target.y = (stageH * _param.y) + _param.offsetY;
  39. }
  40. /* Function that is called when the RESIZE event is fired */
  41. protected function onStageResize(e):void
  42. {
  43. /* reposition the target */
  44. this.reposition();
  45. }
  46. }
  47. }

 

步骤七:如何使用

首先创建一个Flash 文件,使用绘图工具制作出用户界面的各个部分,并在库面板中设置“导出为ActionScript”类,为每个类定义好名称。

如上图所示,这个一个Title的继承自电影剪辑的类,那么我们可以在代码中用New的方式来声明它,并绑定到FluidObject上面,比如:

 

  
  1. var title = new Title();
  2. addChild(title);
  3. var titleParam = {
  4. x:0,
  5. y:0,
  6. offsetX:0,
  7. offsetY:0
  8. }
  9. new FluidObject(title,titleParam);

 

完成每一个部分的配置之后,你可以运行你的应用,并缩放浏览器的窗口来查看效果了。

具体过程请参照作者的原教程:

http://flash.tutsplus.com/tutorials/web-design/build-a-fluid-website-lay...

 

本文转自:http://www.riameeting.com/node/309

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_866774.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[网站优化]Emlog如何给标题增加第X页序号?优选资源网来教你优化emlog分页

今天,优选资源网小编在检查Emlog相关用户体验度是否有提高的地方,发现一点,首页的翻页后,第二页的标题还是和首页一模一样,其实这样的体验是不符合百度等搜索引擎的收录要求(每个页面的标题应该是不一样的&…

Oracle最新技术网站

选择自 WantGoWorld 的 Blog 国内ORACLE相关站点 名称地址介绍Oracle中国公司http://www.oracle.com/cn提供最新的产品及服务介绍。中国Oracle用户组http://www.cnoug.org/ORACLE爱好者之家http://www.oraclefan.net/Jonson Huo免费ORACLE入门http://fengyu.china.com/余枫Orac…

Windows 2003上部署网站时遇到无法加载程序集的问题

现象: 原本已经部署好的网站,覆盖之前的文件会出现类似下面的提示 “未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集” “Failed to start monitoring changes to XXX because …

Python——tcp协议实现简单的静态网站服务器

概述:静态网站是指全部由HTML(标准通用标记语言的子集)代码格式页面组成的网站,所有的内容包含在网页文件中。网页上也可以出现各种视觉动态效果,如GIF动画、FLASH动画、滚动字幕等,而网站主要是静态化的页…

时崎慕意:关于熊掌号对网站SEO的影响

本文不打算长篇大论,随便说些对大家有用的。 熊掌号在几个月前博主就开通了,但一直没接入网站,至今近日才开始使用熊掌号的一些功能。 时崎慕意 熊掌号本身就是百度旗下的,也只支持百度搜索引擎,而其他的搜狗、神马、…

多网站更新监测提醒 v2(采集+自动监控+一键提取)

多网站更新监测提醒 v2(采集自动监控一键提取) 此软件用于监控网站的文章更新内容,并且软件不限制于站点的数量,也就是说可以通过添加多个站点进行监控站点的文章更新情况和内容。特别是网站的小编。每天看N个网站发现新鲜货&…

0门槛操作SEO快排代做项目 无需SEO基础

最近很迷茫,还是因为网站定位方向的原因。 由于之前博客是做SEO这一块的,后来才慢慢转为了网赚这个领域。 所幸这两者之前的关联也是颇为联系,于是保留了部分原来的模样,例如网站标题和描述,都还存留SEO的字样&#…

微信网页小游戏网站源码带后台+可后台添加游戏+推荐到微信

微信网页小游戏网站源码带后台,淘宝上卖的很火的源码,免费公开!

如何提高百度指数,快速打造一个高权重网站

最近在看一小说,小说名忘了。 讲的是修道、玄幻的,内容略有不同,不是纯粹的爽文类型,条条框框的礼节道义颇多。给我的第一感觉就是,这TM也能上排名榜? 小说这一领域,十有九九都是小白文、爽文…

2021全球访问量最高网站榜单出炉!

最近锦鱼课堂从国外SimilarWeb数据平台了解到,2021中季度全球访问量最高的网站榜单出炉了,Google排第一,国内唯一上榜的网站“百度”排第七! 2021全球访问量最高网站榜单 流量 网站 微新闻 第1张 以下是SimilarWeb统计的2021中季度全球访问量…

透过网站备案看互联网创业环境

互联网在中国的发展非常迅猛,尤其是近两年,在淘宝"双十一"的带动下,电子商务也异常火爆,这就更加加剧了中小站长的草根创业梦想,在这过程中,涌现出了一批又一批想要通过互联网实现创业梦想的热血…

空手套白狼:招投标网站的内幕

空手套白狼:说说招投标网站的一些内幕 导读:我非常欢迎这类文章的投稿,并会做传播,作者是一位建筑公司的经理,会通过互联网与大量招标类网站有接触,并通过自己的经历告诉了我们这些网站的内幕,通…

友链SEO工具:换链神器测试体验

上周我报道了好友张森推出的一款“换链神器”的SEO软件,短短四个小时有近200IP访问,时隔三天后张森再次跟我反馈,一周的流量统计从卢松松博客就占据了1/8流量。 看上去,站长对这款软件有很大期待。 获得外链,目前最可…

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看…

你的密码被泄露过吗,还是主流网站泄露的!-- 火狐官方数据

火狐官方的密码泄露查询 网址:https://monitor.firefox.com 从上图可以看出,我的优酷密码被泄露过,还好我的优酷不是会员跟其它密码也不一样,不怕撞库工具 你的密码被泄露了吗?快查查看看,及时的改密码可有…

网站都变成灰色了,它是怎么实现的

估计大家发现了,今天,各大网站、APP都变灰了,原因想必大家都知道了。 粉丝群里有人在问,这是如何做到的? 我本来想写一篇文章来聊聊,没想到之前已经有一位大佬写过了,而且写的还不错&#xff0…

[ CSOL - CLS ] 活动网站 map area

文章目录 CLS时装CSOL 工创精英团(设置上传图片的宽高度,提升用户体验)(1)设置上传图片的宽高度 CSO歌手 奈奈(背景音乐DOM写入、小说分页切换、自定义滚动)(1)背景音乐D…

【皮皮哥资源网站】问道(一)

原文:https://www.shidaige.com/?s=69 <form method="get" class="site-search-form" action="https://www.shidaige.com/"><input class

浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)

本文主要涉及内容&#xff1a; 什么是XSSXSS攻击手段和目的XSS的防范新浪微博攻击事件 什么是XSS 跨网站脚本&#xff08;Cross-sitescripting&#xff0c;通常简称为XSS或跨站脚本或跨站脚本攻击&#xff09;是一种网站应用程序的安全漏洞攻击&#xff0c;是代码注入的一种。…

提高网站速度的最佳实践

相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax&#xff0c;flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google机会已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是…