推荐阅读

解析IOS平台设计规范和常用尺寸
此文分别从控件+布局+模态情景+手势交互+动画+字体等六个方面介绍了一些iOS平台设计的基础规范,有志于UI设计的童鞋推荐收藏起来,将来要做相关的设计可以直截了当戳进来学习。一、UI的控件概述:1、框架UI的元素分为4类:A:栏:状态栏目和导航栏的结合体;B:内容视图:应用显示的内容信息,包括相关的交互行为,例如滚屏、插入、删除等操作进行排序;C:控制元素:产品行为或显示的信息;D:临时视图:临时向用户提供重要的信息,或提供额外的功能和选项。2、框架UI的尺寸:

Photoshop调出阿宝色通透肤色效果的婚纱照片
先来看一些效果:衣服:拍摄前一天路边买的一条纯白色有裙子,很素但是布料很舒服。道具:自家花店根据现有花材扎成的森系手捧,主要有尤加利叶和棉花。场地:一个普通草地器材:佳能6D+135mmf/2L时间是下午三点左右,太阳还稍微有点强,下面就开始拍摄了。这些是前期的一些准备工作。先看看效果对比:看得出原图颜色有些灰,层次不够,皮肤不够通透,下面就讲下调色思路。

滤镜特效范例23
1、新建图像,将背景变为黑色,新建一个文字层。输入白色的文字,类似下图所示。2、对文字使用【滤镜_杂色_添加杂色】滤镜(需要栅格化图层),设定类似下左图。图像效果如下右图所示。-3、对文字层执行【滤镜_像素化_晶格化】,设定如下左图,图像效果类似下右图。-4、将文字旋转90度,执行【滤镜_模糊_高斯模糊】和【滤镜_风格化_风】滤镜,最后再将图像旋转回去。分别如下各图所示。---5、建立一个渐变映射调整层,设定如下左图,图像效果如下右图。-
最新发布

Flash代码实例:神奇的互动橡皮刷
以前用Flash做橡皮刷的时候通常都是通过绘制底图实现的,最近在发现其实还有一种更好的实现方法就是用bitmapdata的alpha通道。 只要在一张图片上用draw画一个透明度为零的图片,就可以实现在draw的区域图片透明了。 完成效果如下: 点击选择右边的橡皮刷或者画笔图标,再用鼠标在画面上拖动,看看会出现什么情况? AS代码如下://导入所需要的类import flash.display.BitmapData;import flash.geom.Rectangle;import flash.geom.Point;//初始点(0,0)var base_point:Point = new Point(0, 0);//初始区域(0,0,25,25)var base_rectangle:Rectangle = new Rectangle(0, 0, 25, 25);//导入库中图片var bit1:BitmapData = BitmapData.loadBitmap("img1");//定义org_bit:BitmapData用于恢复图片var org_bit:BitmapData = new BitmapData(mc._width, bit1.height, true, 0);org_bit.draw(bit1);//draw_bit拷贝org_bit用于涂鸦操作var draw_bit:BitmapData = org_bit.clone();//导入到舞台中_root.createEmptyMovieClip("draw_mc", 1);draw_mc.attachBitmap(draw_bit, 1);//定义橡皮刷erase_bit和笔刷redraw_bit argb为0(透明)var erase_bit:BitmapData = new BitmapData(mc1._width, mc1._height, true, 0);var redraw_bit:BitmapData = erase_bit.clone();//橡皮刷erase_bit填充为白色,这里注意a必须不为0 rbg为FFFFFFerase_bit.fillRect(erase_bit.rectangle, 0xFFFFFFFF);//定义橡皮刷erase_bit和笔刷redraw_bit形状 注意mc1必须为黑色 你也可以尝试用别的颜色看看效果慢慢体会吧erase_bit.draw(mc1);redraw_bit.draw(mc1);//交换erase_bit r通道和a通道数值 所以a通道数值为00erase_bit.copyChannel(erase_bit, erase_bit.rectangle, new Point(0, 0), 1, 8);//保存当前使用的工具var tools:String;//点击笔刷工具mc_bursh.onRelease = function(){this.gotoAndStop(2);mc_earse.gotoAndStop(1);tools = "bursh";};//点击橡皮刷工具mc_earse.onRelease = function(){this.gotoAndStop(2);mc_bursh.gotoAndStop(1);tools = "easre";};//在draw_bit上涂鸦draw_mc.onPress = function(){trace(tools);if (tools == "bursh"){this.onMouseMove = bursh_pic;}if (tools == "easre"){this.onMouseMove = earse_pic;}};//停止涂鸦draw_mc.onRelease = function(){delete this.onMouseMove;};//橡皮刷工具function earse_pic(){var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);trace(now_rect);//在draw_bit上使用copyPixels alpha为false 透明区域透明 不透明区域保持原色draw_bit.copyPixels(draw_bit, now_rect, new Point(_xmouse, _ymouse), erase_bit, new Point(0, 0), false);updateAfterEvent();}//笔刷工具function bursh_pic(){var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);trace(now_rect);//在org_bit上使用copyPixels alpha为true 则笔刷工具只有不透明的地方起作用draw_bit.copyPixels(org_bit, now_rect, new Point(_xmouse, _ymouse), redraw_bit, new Point(0, 0), true);updateAfterEvent();}//移动背景图观察效果mc.onPress = function(){this.startDrag();};mc.onRelease = function(){this.stopDrag();};

用Flash AS代码制作美丽光影变幻动画
效果演示: 制作思路: 这个影片剪辑中包含了五帧,每一帧上有不同颜色的小球,我们通过Actionscript代码来控制跳定位在不同颜色的小球上,从而实现不同颜色小球之间相互叠加,并在场景中复制,同时通过Actionscript控制小球的自动移动,并应用融合效果。 制作方法: 1.新建一个Flash文档,文件的场景大小设置为590*350.背景为黑色.帧频设置为31,将其另存为blendmode3.fla. 2.打开新建的blendmode3.fla.在主场景中绘制一个38*38大小的园形二维形体,按下shift+F9打开混色器,选择放射状添充,当选择蓝色,如下图所示. 注意右边的混色器,在下面的滑块中,我们左边用的是蓝色,右边是也蓝色,但它的透明度是0,添充后效果如下图所示。 注意这个园形的大小当前为我们放大后观看的效果,它的原本大小为38*38。

Flash制作简单光晕变幻动画特效
本例中我们用Flash来模拟光斑的动画效果,效果如下。从中我们可以学习色彩的调节变换,调节出好的色彩才会使图像更加亮丽,增加层次感和视觉效果。 效果演示: 1. 单击Flash文件菜单点新建命令新建一个动画文件,再单击修改菜单中的场景,在弹出影片属性框中作一下修改,宽(width)为300px,高(height)为160px,背景色为黑色,按确定按钮。 图1 2.单击“插入”菜单中“添加组件”命令,新建一个组件取名为gux(随便取名),性质设为图像,按确定进入gux的编辑区。 图2 3. 从左边的工具栏中选择矩形工具,在下面的线条颜色按钮上单击,在弹出的选色面板左上角有个描边按钮,把它关闭,如左图,目的是在画出的矩形中去掉外边框。 在工具栏的下面填充颜色按钮上单击, 在弹出的选色面板上单击顶部中间的配色按钮。 图3 4. 在弹出的颜色面板上选择渐层,设置类型为线渐层,在配色坐标上排列5个色标,从左到右5个色标的值分别为(0,0,0)、(250,100,0)、(250,250,200)、(250,100,0)、(0,0,0),两个黑色Alpha的值为100%,如下图。

用Flash AS行代码画一棵漂亮的树
本文中我们用用Flash AS代码来画一棵漂亮的树,只有25行代码。 AS代码如下:varmc=this;functiondl(ax,ay,bx,by){mc.moveTo(ax,ay);mc.lineStyle(0,0x000000,100);mc.lineTo(bx,by);}functionlzh(x,y,l,angle,n){if(n>0){vara_l,a_r,x1,x1_l,x1_r,y1,y1_l,y1_r,x2,x2_l,y2,y2_l,x2_r,y2_r;x1=x+0.5*l*Math.cos(angle*Math.PI/180);y1=y-0.5*l*Math.sin(angle*Math.PI/180);x2=x+l*Math.cos(angle*Math.PI/180);y2=y-l*Math.sin(angle*Math.PI/180);dl(x,y,x2,y2);a_l=angle+30;a_r=angle-30;l=l*2/3;lzh(x2,y2,l,angle-random(10),n-1);lzh(x1,y1,l*2/3,a_l,n-1);lzh(x1,y1,l*2/3,a_r,n-1);lzh(x2,y2,l*2/3,a_l,n-1);lzh(x2,y2,l*2/3,a_r,n-1);}}lzh(300,400,120,90,6);

如何用AS代码隐藏Flash的右键菜单
第一种写法:varmy_cm:ContextMenu=newContextMenu();//新建一个菜单对象my_cm.hideBuiltInItems();//新建一个菜单对象的内容隐藏my_cm.builtInItems.print=true;//如果你想要某个或某几个出现,可以这样设置,这里设置的仅显示"打印"this.menu=my_cm;//将菜单附加到对象 第二种写法:varmy_cm:ContextMenu=newContextMenu();//新建一个菜单对象my_cm.builtInItems.print=false;//要删除的菜单项设置为falsemy_cm.builtInItems.quality=false;my_cm.builtInItems.zoom=false;my_cm.builtInItems.forward_back=false;this.menu=my_cm;//将菜单附加到对象 下面是可控制的菜单项目: zoom:缩放 quality:显示质量 play:播放 loop:循环 rewind:后

Flash AS制作上升的水泡效果动画
本文介绍用Flash的AS代码制作上升的泡泡的动画。 如果一个一个的画,工作量繁重并且效果并不好。我们利用AS的复制语句来实现水泡的数量,利用设置属性来改变透明度,大小等。最后在影片剪辑中设置水泡的左右摆动。综合在一起就可以实现水泡上升的效果了。 具体步骤: 1.Flash MX中新建一文档。并适当修改文档属性(400×300,蓝色背景) 。 2.建一个影片剪辑,命名为“h2o”。进入编辑区以后,利用绘图工具,渐变填充绘制一个水泡。 3.回到主场景,把图层1命名为“h2o”。从库中把“h2o”影片剪辑拖放到场景的下方,在下面的属性面板中命名它的分身名为“h2o”。 4.主场景中新建一个图层,命名为“as”。在第1帧添加AS:i=1while(i<=30){duplicateMovieClip("h2o","h2o"+i,i);setProperty("h2o"+i,_x,random(400));setProperty("h2o"+i,_y,random(100)+300);setProperty("h2o"+i,_xscale,random(60)+40);setProperty("h2o"+i,_yscale,getProperty(eval("h2o"+i),_xscale));setProperty("h2o"+i,_alpha,random(30)+70);i++}_root.h2o._visible=0 5.具体解释如下:

Flash AS代码常用调试语句trace()的使用
Flash中的trace();函数是测试flash影片的输出信息,例如查看影片中的某个变量的数值,方便AS代码的调试,让我们知道变量的值是不是自己要的结果。 trace();语法为: trace(变量或其它信息); 例如,我们设定一个变量bb=10,然后在帧的动作栏里输入: bb=10; trace(bb); 按Ctrl+回车测试影片时,就会弹出输出栏,显示10. 其它信息指的是数字或文字,字符.如: trace(10); trace("天极设计在线"); 分别输出的信息是:10和天极设计在线.注意,文字或字符要用""围起来.

Flash教程:AS下雨动画效果的制作
先看下效果:(附.swf文件) 制作过程 一、新建一图层,大小随意; 二、新建元件(影片剪辑): 1、制作雨滴并下落。使用直线工具(颜色设为灰色,1像素)画一短直线,使用选择工具将直线移到上方(最好移到文档上面一点),在第15帧(要雨急则帧短,反之则长)处插入关键帧,并将直线向下移动,选择1至15帧之间任意一帧,选择属性下补间,选择形状。然后在第16帧处插入空白关键帧,在第36帧处插入空白关键帧,并在该帧上写入代码stop();(这是为了让雨不过于密急)。 2、制作水波。锁定图层1新建一图层2,在图层2第15帧处插入空白关键帧,使用椭圆工具(笔触设为灰色,填充色设为无)在直线下方画一椭圆,选择第15帧并将其移动到16帧,在第35帧插入关键帧,使用变形工具将椭圆放大,使用选择工具点击椭圆,将其透明度设为5,再在15-35帧之间创建形状补间动画。 三、点击场景回到场景,按CTRL+L打开库面板,将元件拖到场景的图层1,并调整到合适位置,在第170帧处插入关键帧。使用选择工具点击元件实例,在属性面板中写上实例名称,随意写,我这里写的是mc(如果你不是写的mc,请在代码中将mc改为你写的名称)。 四、新建一图层,在第1帧处插入代码c=1;在第2帧处插入空白关键帧,并将以下代码复制到动作面板中。 function ee(){ duplicateMovieClip("mc",c,c); setProperty(c, _x,random(550)); setProperty(c, _y,random(200)); updateAfterEvent(); c++; if (c>300) { clearInterval(kk); } } kk=setInterval(ee,120);

设计实现flash小球沿菱形运动
如何使小球沿菱形运动(不用引导线),其实方法有多种,下面帖一种比较简单的方法,老鸟们别看了(浪费你的时间). 以下代码中 ball是那个红色小圆点, rhombus 是那个菱形 //初始值 var x0:Number = rhombus._x, y0:Number = rhombus._y, w:Number = rhombus._width, h:Number = rhombus._height; //四个顶点的坐标(从上往右往下往左) var xy_array:Array = [[x0, y0-h/2], [x0+w/2, y0], [x0, y0+h/2], [x0-w/2, y0]]; //开始点坐标,定点在最高处,其中startX startY 两个变量决定到达转折点折反时的起始坐标值 var startX:Number = ball._x=xy_array[0][0]; var startY:Number = ball._y=xy_array[0][1]; //k 决定取数组中哪个元素的值 var k:Number = 1; ball.onEnterFrame = function() { //匀速运动,也就是将终点坐标与起点坐标的长度分成50个等份,ball坐标每次移动1个等份,直到终点 this._x += (xy_array[k][0]-startX)/50; this._y += (xy_array[k][1]-startY)/50; //当到达最右边点时 if (this._x>=(xy_array[1][0]-1)) { //定义ball坐标和起点坐标的值,防止ball出现偏移,下面各个if 中意思相似 this._x = startX=xy_array[1][0]; this._y = startY=xy_array[1][1]; k = 2; // k值变化决定终点坐标值,下同 } if (this._y>=(xy_array[2][1]-1)) { this._x = startX=xy_array[2][0]; this._y = startY=xy_array[2][1]; k = 3; } if (this._x<=(xy_array[3][0]+1)) { this._x = startX=xy_array[3][0]; this._y = startY=xy_array[3][1]; k = 0; } if (this._y<=(xy_array[0][1]+1)) { this._x = startX=xy_array[0][0]; this._y = startY=xy_array[0][1]; k = 1; }};

Flex程序开发心得小结
和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。 在Flex的帮助手册中,有一个专门的章节讲了程序的优化,下面是我结合帮助作的几点小结: 1、避免容器的多级嵌套,减少相对尺寸、相对定位的使用。在使用百分比来给容器内的元件定尺寸,一旦容器中的任何一个元件的位置和尺寸变化,都会引发容器对所有子级的重定位动作。如果嵌套的级别很深,这个计算量会很大。 2、尽量使用轻量级的容器Canvas是体积最小的容器,它只支持绝对定位。很多时候,都可以使用它来代替HBOx和VBox。另外,Canvas也是我们编写自定义容器性质组件的一个首选。它具有容器的基本功能,利于扩展。 3、避免使用大体积的组件,比如DataGrid、AdvancedDataGrid大个子组件的功能强大,但开销也是非常大的。由于功能的复杂性,使得皮肤、样式、itemRenderer的实现都格外复杂。 4、处理数据时多用分页的方式在使用数据类型控件时,尽量减少数据一次的显示量。比如TileList,它会把数据一次性全部创建,不管是不是需要显示,这样很浪费资源。 ViewStack 、TabNavigator等在处理元件时,并不是一次创建,只要元件在第一次被显示时才创建,这样,就避免的不必要的开销。 5、setStyle和styleNameFlex 组件的皮肤都是可视化元件,组件在自身初始化时,会使用当前的样式比如styleName完成所有皮肤元件的绘制。如果我们在运行期间通过setStyle修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有一个大的计算量。