创建一个流式的网站布局
2009-07-17 15:30
344 查看
在这篇文章中,我们来介绍一下如何实现一个流式的网站布局,原文地址在:
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类文件可以很方便的移植到其它的项目中。
设置x和y都为0,意味着fluid object将定位在屏幕的左上角。而设置x和y都是1,则意味着fluid object将定位在屏幕的右下角。同样的,设置0和1代表屏幕的左下角,而设置1,0则代表右上角。它们的具体位置的像素值则是根据屏幕的尺寸计算出来的。
offset X和Y定义元件的偏移量,这个非常有用,因为元件的默认注册点是0,0,而你通过设置x,y都是0.5的时候,元件并没有居中(由于元件本身具备宽度和高度属性)。这个属性可以帮助你实现完美的居中效果。
步骤五:生成的类代码
步骤六:实现
首先导入需要的类文件,包括flash.events.Event,flash.display.*。然后定义变量,实现构造方法,最后实现重新定位的方法(reposition),并实现当场景尺寸发生改变的时候的侦听方法。最后完成的类代码是:
步骤七:如何使用
首先创建一个Flash 文件,使用绘图工具制作出用户界面的各个部分,并在库面板中设置“导出为ActionScript”类,为每个类定义好名称。
如上图所示,这个一个Title的继承自电影剪辑的类,那么我们可以在代码中用New的方式来声明它,并绑定到FluidObject上面,比如:
完成每一个部分的配置之后,你可以运行你的应用,并缩放浏览器的窗口来查看效果了。
具体过程请参照作者的原教程:
http://flash.tutsplus.com/tutorials/web-design/build-a-fluid-website-lay...
本文转自:http://www.riameeting.com/node/309
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创建的目录中。这个类将包含当浏览器缩放的时候改变元件位置的属性。步骤五:生成的类代码
package FluidLayout { /* Add import classes here */ public class FluidObject { /* Declare instance variables here */ /* Constructor of the class */ public function FluidObject(target:DisplayObject,paramObj:Object) { } /* Function that repositions the monitored object */ protected function reposition():void { } /* Function that is called when the RESIZE event is fired */ protected function onStageResize(e):void { } } }
步骤六:实现
首先导入需要的类文件,包括flash.events.Event,flash.display.*。然后定义变量,实现构造方法,最后实现重新定位的方法(reposition),并实现当场景尺寸发生改变的时候的侦听方法。最后完成的类代码是:
package FluidLayout { /* class needed on resize Event */ import flash.events.Event; /* classes needed for MovieClip and DisplayObject */ import flash.display.*; public class FluidObject { /* alignment parameters */ protected var _param:Object; /* target object to be monitored */ protected var _target:DisplayObject; /* stage instance of the flash document */ protected var _stage:Stage; /* Setter for the alignment param */ public function set param(value:Object):void { _param=value; this.reposition(); } /* Constructor of the class */ public function FluidObject(target:DisplayObject,paramObj:Object) { /* Assign the instance variables */ _target = target; _param = paramObj; _stage = target.stage; /* add event handler for stage resize */ _stage.addEventListener(Event.RESIZE, onStageResize); /* reposition the object with the alignment setting applied*/ this.reposition(); } /* Function that repositions the monitored object */ protected function reposition():void { /* get the current width and height of the flash document */ var stageW = _stage.stageWidth; var stageH = _stage.stageHeight; /* update the x and y value of the monitored object */ _target.x = (stageW * _param.x) + _param.offsetX; _target.y = (stageH * _param.y) + _param.offsetY; } /* Function that is called when the RESIZE event is fired */ protected function onStageResize(e):void { /* reposition the target */ this.reposition(); } } }
步骤七:如何使用
首先创建一个Flash 文件,使用绘图工具制作出用户界面的各个部分,并在库面板中设置“导出为ActionScript”类,为每个类定义好名称。
如上图所示,这个一个Title的继承自电影剪辑的类,那么我们可以在代码中用New的方式来声明它,并绑定到FluidObject上面,比如:
var title = new Title(); addChild(title); var titleParam = { x:0, y:0, offsetX:0, offsetY:0 } new FluidObject(title,titleParam);
完成每一个部分的配置之后,你可以运行你的应用,并缩放浏览器的窗口来查看效果了。
具体过程请参照作者的原教程:
http://flash.tutsplus.com/tutorials/web-design/build-a-fluid-website-lay...
本文转自:http://www.riameeting.com/node/309
相关文章推荐
- 创建一个流式的网站布局
- PS网页设计教程IV——如何在Photoshop中创建一个专业博客网站布局
- CSS网站布局十步之第二步 创建html模板及文件目录等
- 教你如何创建一个免费的网站
- 使用JSOM创建一个SharePoint网站计数器
- 手把手学习企业型网站之二firework做总体概图+dw中布局一个站点
- Zend Framework 1.10.1 快速入门之三: 创建一个布局
- 创建一个受约束的布局
- 在外国网站上看到一个用artoolKit做的demo,学习了用gcd创建单列
- Android-教你自作一个简单而又实用的流式Tag标签布局
- Godaddy快速创建一个个人网站
- 对于小白,创建一个网站你需要做什么?
- sharepoint 2016 学习系列篇(5)-创建一个应用程序网站
- 自己创建一个o2o网站
- 1 月份新增开源项目:创建一个静态网站只需 5 分钟
- 【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局
- 创建一个方便设计的自定义栅格布局
- 如何创建一个网站(二.网站开发工作 总结)
- Flex中如何创建一个可以自动换行并调整布局的ToolBar容器
- 使用float和clear创建网站三栏液态布局