推荐阅读

商业人像速成教材:环境人像
注重化妆和造型的设计 化妆是环境人像拍摄中重要的一环。合适的妆容可以掩盖一些局部的缺陷,让平淡的五官和轮廓显得更加鲜明,也可以 起到使模特融入环境或在环境中更加突出的效果。如果模特是长发,就可以在拍摄时选择将头发放松下垂、扎紧或者盘起来,做出不同的造型,以得到不同的效果。 模特的服装最好能多带几套,以适应不同的场景。比如在一片绿色的背景下,就可以考虑来个“红花还需绿叶扶”的场景。这样不但画面色彩搭配漂亮,而且人物主 题非常突出。画面元素要合理组合 任何单一的因素都难以成就一幅成功的作品,对画面元素的控制,归纳起来虽然简单,但实际拍摄过程中想做到自觉地 进行创造性运用,并非一日之功。尤其要处理好色彩的和谐,使整个画面充满活力。通常我们在拍摄环境人像时,多遇到在树林内或大树旁选景拍摄的情况。在强烈 的日光照射下,光线穿过树叶会形成许多光斑,照在人脸上非常难看,而用这些光斑作背景画面会收到很好的效果,但需选用大光圈来控制景深,虚化这些光斑,这 样才能得到赏心悦目的画面。另一种可能的场景是,在公园内用假山石作背景,让模特穿着鲜艳的服装,从而获得较大的色彩反差,拍出的照片感染力非常强烈。还 有一些其他的背景,如有粗犷石纹的墙面、大面积的植物、池塘、建筑物、公路、雕塑等,这些背景素材只要合理组合利用,都可以成就一张成功的环境人物作品。利用空间创造感觉 控制空间的感觉最重要的是对背景的控制。拍摄时如果选择过于杂乱的背景会使整个画面找不到重点,因此要做适当的 取舍,使画面有疏有密。为了更突出空间的感觉,拍摄时除了画面的构图外,也要注意其中人与物的结合,用动作方面的创造抓住视觉的重点。其次,画面中的景物 要有呼应。主体与背景之间,以及主体与客体之间要有联系,不能孤立,这样才能够达到更完美的感觉。

PhotoShop消失点滤镜快速为沙发换花纹
花纹素材沙发素材1.打开花纹图.全选图.复制..关闭..等下会用到.2.关闭花纹图.打开沙发图.复制图层.钢笔工具勾图3.钢笔工具勾出图后.复制出所选图层

Discreet发布3ds max7中文版SP1
Discreet官方网站05年3月30日消息:继去年年底discreet发布3ds max 7 中文版以来,经过一段时间的运行,该简体中文版本还存在不少Bug,本次Discreet针对3ds max 7 中文版本存在的问题发布了 Service Pack1,它解决了很多目前困扰3ds max 7用户的问题,相信随着时间的推移,简体中文版的3ds max 7将会越来越受欢迎,下面就让我们来看一下新发布的3ds max 7的Service Pack1都解决了哪些问题。 一、3ds max 7的Service Pack1解决的问题 1、在3ds max 7 中文版发布之初,不能正确渲染在网络上渲染 AVI 和 MOV 文件,现在这个问题已经得到了彻底的解决。 2、在3ds max 7 中文版中,解决了Character Studio的将 Biped 副本加载到没有马尾辫的 Biped 时产生的姿态问题。 3、解决了Character Studio的场景中的具有三种自由度的多选对象无法在正确空间中旋转的问题。 4、解决了Character Studio使用“自动关键点”和粘贴姿势时,始终无法正确粘贴正确姿势的问题。 5、在3ds max 7 中文版中,在编辑多边形的时候,当我们将材质指定到无贴图坐标的“编辑多边形”修改过的对象时会出现错误,Service Pack 1解决了这个问题。 6、可编辑网格对象的动画设置问题。解决了当可编辑网格对象类型中存在一个子对象变形动画的问题,即无法正确创建从 0 帧完成的动画,该问题已解决。 7、解决了文件 I/O错误问题,修正了保存当我们保存 .DDS 文件时固定内存泄漏的问题。 8、解决了文件链接中存在的问题。现在文件链接将先搜索其数据集是否有替代对象,如有将避免重新加载。
最新发布

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修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有一个大的计算量。