推荐阅读

UI设计师最需要了解的设计工作流程
每个设计师看文章都有自己的喜好,有些人喜欢看一些纯设计技法或者设计教程,有些人喜欢看一些偏理论的知识点,比如工作经验、设计流程、设计分析等等。其实作为一名UI设计师应该看文章不要挑剔,每一方面都要看一下,这样才能更好的提升自己的设计水平和管理能力。欢迎关注作者所在的丁香园设计团队微信公众号:「花厂设计招待所」今天主要来跟大家聊聊我自己的工作习惯和方法,相信作新人看了一定会收获很多~1. 一般怎么规划好工作上的需求?我使用teambition软件来管理我的日常需求,teambition是一款团队协作软件,由于公司使用的是tower,所以目前teambiton我是用来管理个人需求。我用过tower,可能觉得界面不够美观,有些地方体验不是特别好,不过用来团队协作应该也是不错的。由于朋友的推荐,我就尝试用teambiton来管理个人的日常需求,发现已经能够满足日常的工作需要了。下面我放上几张截图来说明我如何使用teambition。因为teambition功能点非常多,这里只是做个示例,希望有兴趣的自己体验一下。产品设计流程图(PM)App设计流程图适合全新App设计,整理出所有大致需要做的东西,然后按照从左到右的顺序分别完成。

使用Photoshop给外景人像添加唯美逆光效果
最终效果原图1、打开素材图片,创建可选颜色调整图层,对黄色,青色进行调整,参数及效果如下图。这一步主要把草地的颜色转为橙黄色。2、创建色相/饱和度调整图层,对黄色进行调整,参数及效果如下图。这一步把草地颜色转为红褐色。

Camera Raw各版本英文变中文的方法
很多朋友对Photoshop CS2 RAW格式插件的安装没问题,只需拷贝Camera Raw.8bi文件到相应的文件夹就可以了,但是显示的是英文,希望此方法能够解决大家将Camera Raw各版本在Photoshop CS2 中英文变中文的方法的问题。高手就不要看了! Photoshop CS2 RAW格式插件的安装路径: PS CS2英文版,安装路径是:C:\Program Files\Adobe\Adobe Photoshop CS2\Plug-Ins\File Formats把Camera Raw.8bi拷贝到这个目录下就行 Adobe Photoshop CS2简体中文版的安装目录:把Camera Raw.8bi文件copy到C:\Program Files\Adobe\Adobe Photoshop CS2\Plug-Ins\文件格式 目录下面即可 安装好cs2后,将RAW格式的图片导入PSPScs2,若显示的Camera Raw英文界面,选择open,将图片导入PS中,选择文件,看看有没有关闭并转到Bridge选项,若没有,需要进行升级,即Adobe Bridge,Adobe Bridge 1.0.2 update的下载地址:http://download.adobe.com/pub/adobe/...idge102Win.zip。升级后,打开PScs2,文件--关闭并转到Bridge--提示保存图片,是否?进入在桌面Adobe Bridge中--Edit(编辑)--Preferences....(首选项)--Advnaced(高级)--Language(语言)--选择Chinaexe,Simplified(简体中文)--OK(确定)--关闭Adobe Bridge,重启PS,打开文件就出现RAW的中文界面了,此方法适合于Camera Raw各个版本

Flash动态解析Web应用程序服务器路径
玩过Flash+ASP/PHP开发的朋友都知道,在Flash软件里测试Flash从后台脚本读取数据的时候,不能直接的用如“loaddata.asp”这样的路径,必须是http://www.domain.com/Application/loaddata.asp 或者 http: 开头的路径。有些人问了?为什么呢?当FlashPlayer里测试的时候收到load("loaddata.asp")这个命令的时候,他会直接读swf文件路径下的 loaddata.asp文件。但由于没有经过IIS的运行处理,直接读入Flash内部,当然,读出的结果就是%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%类似这样了,所以就无法根据我们的意愿来处理数据了,而当FlashPlayer执行load("http://www.domain.com/Application/loaddata.asp")这个命令的时候,他就不再是本地的TXT文件读取命令,而是一个HTTP请求,FlashPlayer把这个请求发送到HTTP服务器,服务器的IIS解析脚本返回结果后Flashplayer便可以正确的处理这些数据了。(废话一堆)当然如果你清楚了路径的关系,也可以把写load("loaddata.asp")写到Flash里,上传的时候,把.asp .swf 和包含 .swf的html文件,都放在一个目录里就行了。特别指出的是swf 在取得路径时,是取包含他的html和.asp的关系的。而不是 swf 与 asp的路径关系。说起来已经是有一点晕了,但如果理解了路径的关系,那就非常简单了。好了,进入正题,虽然输入HTTP路径就可以正确读取数据,但是在程序开发测试阶段可能经常需要开发者更换服务器,那样就对我们造成了一定的麻烦,你每更换到另外一个服务器上面的时候就要修改一次他的HTTP路径,如果读取了N(N≠0)个文件,难道还要手动修改N次?当然不是,那么通过下面这个小技巧便可以轻松解决这个问题:把SWF文件嵌入到一个ASP页面里面,输入如下代码:<%Dim PageUrl,URLarry,i,ApplicationURLPageUrl="http://" & Request.ServerVariables("http_host") & Request.ServerVariables("url")Response.Write "PageURL="&PageUrlURLarry=Split(PageUrl,"/")Arryubound=ubound(URLarry,1)-1For i=0 to ArryuboundApplicationURL=ApplicationURL&URLarry(i)&"/"NEXTResponse.Write "<br>ApplicationURL="&ApplicationURL '这一句仅仅是测试代码是否正确,可省%>好了,对ASP有一定了解的朋友应该都明白代码是什么意思了,PHP也可以用这种思路来写,下面在SWF路径中可以这样写 <%="flash.swf?myserver="&ApplicationURL%> 这样就可以通过URL把变量传递给SWF文件,在Flash影片中便可以直接访问这个变量了,就是_root.myserver。 好的,现在来让我们测试一下结果,先编写一个loaddata.asp,让他返回一个back变量。打开FLASH,新建一个文件。然后在场景中拖入两个动态文本框,分别命名为txt.url 然后在第一帧输入以下代码:mytxt=new LoadVars()mytxt.load(_root.myserver+"loaddata.asp")mytxt.onLoad=function(sUCcess){if(success){
最新发布

Flash CS5实例教程:漂亮的气泡动画
function ball(r:int):MovieClip {//自定义函数 ball,参数为 r,整数型,返回值为 MovieClipvar col:uint=0xffffff*Math.random();//声明一个无符号整数型变量 col,获取任意颜色var sh:MovieClip=new MovieClip();//声明一个影片剪辑类实例 shsh.graphics.beginGradientFill(GradientType.RADIAL,[0xffffff,col,col],[0.5,1,1],[0,200,255]);//在 sh 中设置渐变填充样式(放射状渐变,颜色,透明度,色块位置)sh.graphics.drawCircle(0,0,r);//在 sh 中画圆(圆心坐标(0,0),半径为参数r)sh.graphics.endFill();//结束填充return sh;//返回 sh}var ballArr:Array=[];//声明一个空数组 ballArrfor (var i:int=0; i<10; i++) {//创建一个 for 循环,循环 10次var balls:MovieClip=ball(Math.random()*20+20);//声明一个影片剪辑类实例balls,调用函数 ball(参数r 半径的值为 20-40 之间的随机值)addChild(balls);//把 balls添加到显示列表balls.x=Math.random()*(stage.stageWidth-balls.width)+balls.width/2;//balls 的 X 坐标balls.y=Math.random()*(stage.stageHeight-balls.height)+balls.height/2;//balls 的 Y坐标,使它出现在舞台的任意位置balls.vx=Math.random()*2-1;//为 balls 设置自定义属性 vx,数值为-1-1 之间的随机数,表示 X 方向的速度balls.vy=Math.random()*2-1;//为 balls 设置自定义属性 vy,数值为-1-1 之间的随机数,表示 Y 方向的速度ballArr.push(balls);//把 balls 添加到数组 ballArr 中}addEventListener(Event.ENTER_FRAME,frame);//添加帧频事件侦听,调用函数 framefunction frame(e) {//定义帧频事件函数 framefor (var i:int=0; i<ballArr.length; i++) {//创建一个 for循环,循环次数为数组 ballArr 的元素数var balls:MovieClip=ballArr;//声明一个影片剪辑类实例 balls,获取数组 ballArr 的元素balls.x+=balls.vx;//balls的 X 坐标每帧增加balls.vxballs.y+=balls.vy;//balls的 Y 坐标每帧增加balls.vyif (balls.x<balls.width/2) {//如果balls 出了舞台左边缘balls.x=balls.width/2;//balls 的 X坐标获取balls 宽度的一半balls.vx*=-1;//balls.vx 获取它的相反数}if (balls.x>stage.stageWidth-balls.width/2) {//如果 alls 出了舞台右边缘balls.x=stage.stageWidth-balls.width/2;//balls 的 X 坐标获取场景宽度与 balls 宽度一半的差balls.vx*=-1;//balls.vx 获取它的相反数}if (balls.y<balls.height/2) {//如果 balls出了舞台上边缘balls.y=balls.height/2;//balls 的 Y坐标获取 balls 高度的一半balls.vy*=-1;//balls.vy 获取它的相反数}if (balls.y>stage.stageHeight-balls.height/2) {//如果 balls 出了舞台下边缘balls.y=stage.stageHeight-balls.height/2;//balls 的 Y 坐标获取舞台高度与 balls 高度一半的差balls.vy*=-1;//balls.vy 获取它的相反数}}for (var j:int=0; j<ballArr.length-1; j++) {//创建一个 for 循环,循环次数比数组 ballArr 元素数少 1var ball0:MovieClip=ballArr[j];//声明一个影片剪辑类实例 ball0,获取数组 ballArr 的元素for (var m:int=j+1; m<ballArr.length; m++) {//创建一个 for 循环,var ball1:MovieClip=ballArr[m];//声明一个影片剪辑类实例 ball1,获取数组 ballArr 的元素var dx:Number=ball1.x-ball0.x;//声明一个数值型变量 dx,获取var dy:Number=ball1.y-ball0.y;//声明一个数值型变量 dy,获取var jl:Number=Math.sqrt(dx*dx+dy*dy);//声明一个数值型变量 jl,获取小球的距离var qj:Number=ball0.width/2+ball1.width/2;//声明一个数值型变量获取小球半径之和if (jl<=qj) {//如果 jl 小于等于 qjvar angle:Number=Math.atan2(dy,dx);//声明一个数值型变量angle,获取ball1 相对于 ball0 的角度var tx:Number=ball0.x+Math.cos(angle)*qj*1.01;//声明一个数值型变量 tx,获取目标点的 X坐标var ty:Number=ball0.y+Math.sin(angle)*qj*1.01;//声明一个数值型变量 ty,获取目标点的 Y坐标ball0.vx=- (tx-ball1.x);//ball0 在X 方向的速度ball0.vy=- (ty-ball1.y);//ball0 在Y 方向的速度ball1.vx=(tx-ball1.x);//ball1 在 X方向的速度ball1.vy=(ty-ball1.y);//ball1 在 Y方向的速度}}}}

Flash CS5入门教程:给任意照片添加雪景动画
制作版本:Flash CS5效果演示:学习视频文件的导入、嵌入,影片剪辑的创建操作。准备工作:雪景图片、下雪的视频。1、打开Flash,新建FLA文件。2、导入图片:选菜单中的【文件】―【导入】―【导入到库】把图片导入到库中。3、导入视频:选菜单中的【文件】―【导入】―【导入视频】打开导入视频面板,选文件路径:点击浏览,在打开面板中找到视频文件,点击打开。在导入视频面板中选中:在SWF中嵌入FLV并在时间轴中播放,点击下一步,嵌入视频,点击下一步,完成频频导入,点击完成。如图:4、选菜单中的【插入】―【新建元件】名称中填入:雪花。类型选:影片剪辑,点确定。进入影片剪辑的编辑状态,选中第1帧,打开库面板,把视频拖入到舞台中,这时会出现一个提示:此视频需要240帧才能显示整个长度。所选时间轴跨度不够长,是否希望该时间轴跨度中自动插入所城帧数?选:是。这样雪花的动画就制作好了。5、新建一个影片剪辑元件,命名为:界面。把图层1改名为:背景。选中图层1的第1帧,打开库面板,把图片拖到舞台中,在属性面板中调整图片的大小,然后打开对齐面板,左对齐,上对齐,上锁。添加一个图层,命名为:雪花。选中第1帧,把雪花视频影片剪辑拖到舞台中。左对齐、上对齐。这时可能雪花视频和背景不一样大,选任意变形工具,点击雪花图层,按住Alt键,拖动手柄调整到同背景一样大小。6、返回到场景1, 选中图层1的第1帧,把库中的界面影片剪辑拖到舞台中,左对齐,上对齐。至此,全部完工了。按Ctrl+Enter组合键,测试影片。注意:如果要制作前景,也就是说不需要下雪的景,比如廊檐、大树等,抠出图来后放在最上面的层。

Flash CS5打造鼠标触发的焰火飘落互动特效
本例介绍用Flash CS5制作鼠标触发的焰火飘落互动特效,主要是用计算鼠标跟随对象来产生具有一定规律的星火特效。 思路:导入背景素材,然后制作出焰火飘落特效。创建文档类,产生鼠标跟随的多角星形特效;创建元件类的扩展类,产生随机大小的火花效果。用鼠标在画面上划过,即可看到绚丽的互动特效 一、 制作焰火飘落特效 (1)新建一个大小为500×300像素,帧频为30fps的空白文档。按Ctrl+R组合键导入本书配套光盘中的“Chapter08/素材/西湖夜景.jpg”文件,然后设置其坐标为(0,0),如图1所示,再采用前面的方法在“属性”面板中添加Main文档类。 图1 导入背景 (2)按Ctrl+F8组合键新建一个影片剪辑(名称为Star_mc),进入该影片剪辑的编辑区域,然后按住Shift+Alt组合键的同时使用“椭圆工具”在该影片剪辑的中心点绘制一个圆形。 图2 绘制圆形 技巧与提示:图形的填充色类型为“放射状”,第1个色标颜色为(R:255,G:0,B:0),第2个色标颜色为(R:153,G:0,B:0),第3个色标颜色为(R:153,G:0,B:0),Alpha为0%。 (3)新建一个star图层,再单击“工具箱”中的“多角星形工具”按钮 ,并在“属性”面板中设置好该工具的参数,然后按住Shift+Alt组合键的同时在影片剪辑的中心点绘制一个如图3所示的星形。 图3 绘制多角星形 (4)使用“选择工具”调整好星形的顶点位置,如图4所示。 图4 调整顶点 (5)选择调整好的多角星形,然后原位复制出一份,按Ctrl+Alt+S组合键打开“缩放和旋转”对话框,设置缩放为40%,再设置其颜色为白色,如图5所示。 图5 拷贝并缩放图形 (6)返回到“场景1”,按Ctrl+F8组合键新建一个影片剪辑(名称为Magic_mc),再设置填充类型为“放射状”,第1个色标颜色为(R:255,G:255,B:255), 第2个色标颜色为(R:255,G:255,B:204),第3个色标颜色为(R:255,G:204,B:0),第4个色标颜色为(R:255,G:102,B:0),第5个色标颜色为(R:153,G:0,B:0),Alpha为0%,然后按住Alt键的同时使用“矩形工具”以该影片剪辑中心点为起点绘制一个如图6所示的矩形。 图6 绘制矩形 (7)使用“任意变形工具”选择矩形,然后按Ctrl+T组合键打开“变形”面板,设置旋转为45°,再单击“重制选区和变形”按钮 ,复制出3份图形,如图7所示。 图7 复制图形 (8)复制出5个图形,然后将其调整成如图8所示的颜色,再将复制出的图形转换为影片剪辑,并将其分别命名为01、02、03、04和05 。 图8 复制图形 (9)将01、02、03、04和05 影片剪辑分别放置在Magic_mc图层的5个关键帧上,然后分别为其添加不同的“发光”滤镜,再新建一个AS图层,最后在“动作-帧”面板中输入stop():程序,如图9所示。 图9 应用滤镜效果二、 创建元件类 添加控制代码(1)采用前面的方法分别为Magic_mc和Star_mc影片剪辑添加元件类,如图10所示。 图10 添加元件类 (2)新建一个ActionScript文件,将其命名为Main,然后将其保存在该实例的文件夹中,再输入控制代码。 /** * 该类为主程序类 * @author lbynet * @version 0.1 */ package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.ui.Mouse; public class Main extends Sprite { private var star:MovieClip; public function Main() { Mouse.hide(); this.star = new Star_mc(); addChild(star); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); } private function moveHandler(e:MouseEvent):void { this.star.x = stage.mouseX; this.star.y = stage.mouseY; var _mc = new Magic_mc(); _mc.x = stage.mouseX; _mc.y = stage.mouseY; addChild(_mc); _mc.addEventListener(Event.ENTER_FRAME, RemoveDrop); } private function RemoveDrop(event:Event) { var _mc:MovieClip = event.target as MovieClip; if (_mc.scaleX <= 0) { _mc.removeEventListener(Event.ENTER_FRAME, RemoveDrop); removeChild(_mc); } //trace(this.numChildren) } } } 技巧与提示:该文档类基本包含了“星星洒落”实例中Main文档类的知识,此外第18行代码为Mouse类的hide()方法,用于隐藏鼠标指针,在使用该方法前必须先导入Mouse类(如第11行代码)。 该文档类定义了一个私有属性Star,第19行代码是为该属性赋值,值为所创建的元件类(Star_mc),并将其添加到显示列表中(如第20行代码),而24和25行代码是为该元件类应用鼠标跟随效果。 (3)同样新建一个ActionScript文件,然后输入控制代码。 /** * 该类为扩展元件类 * @author lbynet * @version 0.1 */ package { import flash.display.MovieClip; import flash.events.Event; public class Magic_mc extends MovieClip { private var dis:Number; public function Magic_mc() { init(); } private function init() { var Random = 1 + Math.round(Math.random()*4); this.gotoAndStop(Random); this.scaleX = this.scaleY = Math.random(); //产生随机数-5到5之间的随机数 dis = Math.round((Math.random()-.5)*10); this.addEventListener(Event.ENTER_FRAME,enterFrameHandler); } private function enterFrameHandler(event:Event) { this.y += 5; this.x += dis; this.scaleX -=.005; this.scaleY -=.005; } } } 技巧与提示: 第19和20行代码是为该元件类创建一个1~5之间的随机数,使该影片剪辑元件类在实例化(被创建时)时将播放头移到并停止在指定的时间帧上。 Math.random()方法产生0~1之间的随机数,Math.random()*4方法返回到0~4之间的随机数,而Math.round()方法用于向上或向下舍入为最接近的整数并返回该值,所以1+Math.round(Math.random()*4)方法取得1~5之间的随机整数值;gotoAndStop()语句使影片剪辑的播放头移到并停止在指定的时间帧上。 通过使用Math.random()-0.5 方法来生成-0.5~0.5之间的随机数,然后乘以10得到-5~5之间的随机数,再使用Math.round方法进行舍入并取得整数,这样当鼠标指针由下往上移动时,就会产生星火飘落的效果,如图11所示。 图11 星火飘落效果 第30行代码是为火花加入y轴坐标方向上的一个固定加速度,而第31行代码则是火花在x轴坐标方向上的一个-5~5之间的随机加速度值。 (4)按Ctrl+Enter组合键发布程序。

3套开放式厨房设计详解
在人们的家居生活中,厨房的地位仅次于起居室。一般开放式厨房是指非封闭式的厨房隔间,也就是厨房空间与餐厅合二为一,或与客厅空间相邻而无任何门挡住的空间。现在已经有越来越多的都市新贵们将自家的小厨房改造成了宽敞明亮的开放式大厨房。 可以预见,开放式厨房将是未来中国人家庭装修的发展趋势,但也有它的弱点:令人挠头的油烟问题。其实,厨房的开放程度是可以控制的,完全开放和不完全开放在视觉观感上差别不大,相应的顺应中国人烹调习惯的改变却都是别具匠心的。让我们看几个实例,选择一个模仿对象,你家也可以轻松开放! 全开放型厨房 主人档案:非乐职业:媒体记者户型特点:厨房面积只有4平方米,厨房与客厅相连,客厅的面积足有15平方米。

87平方清新又温馨的二室二厅
设计档案」业主:年轻夫妇户型:二室二厅二卫房间面积:建筑面积102平方米,使用面积87平方米,平时为4口居住,有双方老人或朋友来小住。房间状况:一层,采光较弱。储藏空间小。业主设计要求:整体要求简单、清新而温馨,能在有限的空间里尽量增加储物空间。希望房屋墙壁有些柔和的颜色。有合适位置安排书柜和电脑工作桌。厨房和客厅要不要打通正在犹豫。「设计说明」餐厅:因双方老人或朋友常来小住,时尚的开放式厨房显然不太实用;将厨房的部分墙体拆除,改为玻璃推拉门,改善了用餐区的采光及通风;在不做饭时将门打开可以拓展餐厅的空间。门厅:门厅摈弃了常见的玄关隔断,鞋柜更似餐边台的效果,鞋柜的背景用彩色铁艺镶嵌,富于变化的图案令墙面变得丰富。入户的墙面搁板,可摆放休闲读物或工艺品或家人的生活照等。点滴中体现生活情趣。

鲤鱼结 中国结教程
鱼和余裕的余同音同声,而被人们认为是吉祥,在鲤鱼上配以牡丹,可题为"富贵有余"。鲤又与利同音,可寓家家行利,自古以来,鲤鱼即被视为祥瑞之物,如"年年有余"。 鲤鱼结又称金鱼结。金玉与金鱼同音异声,俗云"金玉满堂",出自《老子》"金玉满堂,莫之能守",为一吉利用语。 鲤鱼结是以双联结当鱼尾,再以对称的盘长结当鱼身、鱼首而成。

凤凰结(中国结教程)
凤乃百鸟之王,雄为凤,雌为凰,非梧桐不落,是四灵之一。古人认为"凤能治乱",因此只有明君当朝,天下太平时才会出现。 凤凰结是以一个酢浆草结编头部,再以两个大小不同的盘长结编凤身,其造型依个人艺术观点而定。

盘长结
佛门有"八宝",即法螺、*、宝伞、白盖、莲花、宝瓶、金鱼和盘长等8件宝物, 又称为“八吉祥”。盘长为"八宝"中的第八品佛,俗称八吉,象征连绵长久不断,代表八宝的全部。 制作步骤祥解第1步第2步 第3步 第4步 第5步 第6步