推荐阅读

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

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 AS中的setInterval方法
相信大家对Flash的setInterval方法肯定非常熟悉,但不少人对其缺乏深入的了解,致使当一个flash里有多个setInterval的时候就容易混淆,该清除的间隔ID没有清除,不该清除的时候却清除了。对于setInterval的语法我就不赘述,很多文章都有详细说明,下面来说一下setInterval的几个重点。 1、setInterval和clearInterval都是全局函数,也就是_global.setInterval()和_global.clearInterval()。 这一点大家应该都知道,但是可能并没有特别注意。不过这点对我们理解他们非常重要。setInterval的返回值是一个间隔ID(数字),所以这个间隔ID也是全局的。 比如下面的代码: 我们用clearInterval(rootID)和用clearInterval(1)的作用是一样的。 2、每一次调用setInterval,就会返回一个间隔ID,这个ID数值为全局setInterval的调用次数。 比如下面的代码: 在这个例子里,我们可以用clearInterval(1)来清除间隔rootID。假如我们先点击btn1再点击btn2,那么就可以用clearInterval(2)来清除点击btn1所产生的间隔ID,而用clearInterval(3)来清除点击btn2所产生的间隔ID。相反,如果我们先是点击btn2再点击btn1,那么clearInterval(2)则是清除点击btn2所产生的间隔ID. 3、给间隔lID添加标识符 在实际编程中,用上面的clearInterval(数字)这样的方式固然可以清除间隔ID,但是一旦ID过多,我们就会无法识别该清除哪个ID。因此给间隔ID添加标识符就显得非常重要。但是必须把他分配到一个对象的成员变量中。

用Flash AS3制作统计饼图动画效果
FLASH演示地址:http://flashview.ddvip.com/2007_08/32664.swf 说明:点击的蓝色按钮可以画出各种饼图,点击饼图中不同色块可以观看效果。

Flash AS实例教程:制作铅笔动画
用一段简单的AS代码就可以实现简单的铅笔动画效果。 直接复制代码,导出就可以看到效果了:_root.createEmptyMovieClip("pen", 1);pen.lineStyle(2, 0x000000);pen._x = 200;pen._y = 200;pen.beginFill(0x444444, 100);pen.lineTo(30, -10);pen.lineTo(200, -10);pen.lineTo(200, 10);pen.lineTo(30, 10);pen.lineTo(30, -10);pen.beginFill(0x333311, 100);endFill(pen);pen.beginFill(0xf9f999, 100);pen.lineTo(0, 0);pen.lineTo(30, 10);pen.lineTo(30, -10);endFill(pen);pen._rotation = -50;n = 0;r = 100;a = 1;k = 10;tt = 0;lineStyle(2);moveTo(Math.cos(0*Math.PI/180)*r+200, pen._y);ss = setInterval(function () {a++;if (a>3) { a = 1;}if (a == 1) { lineStyle(2, 0xff0000);}if (a == 2) { lineStyle(2, 0x00ff00);}if (a == 3) { lineStyle(2, 0x0000ff);}n += 30r -=0.3if (n<20000) { pen._x = Math.cos(n*Math.PI/180)*r+200; pen._y = Math.sin(n*Math.PI/180)*r+200; lineTo(pen._x, pen._y);}updateAfterEvent();if (n>=20000) { aa = setInterval(function () { updateAfterEvent(); tt++; if (tt>5000) { clearInterval(aa); clearInterval(ss); } pen._rotation = Math.sin(n*Math.PI/180)*5+90; }, 5); _root.createTextField("t", 2, 300, 350, 150, 20); t.text = "By FLASH8菜鸟 kingofkofs"; pen._x = 400; pen._y = 120;}}, 5);sp = 0;f = 20;this.onEnterFrame = function() {if (tt>5000) { pen._y -= sp; sp += 2;}if (sp>f) { sp = -f; if (f>=4) { f -= 4; }}};

教你如何去掉网页上的Flash动画虚线框
如果你是个细心的网民,如果你是一个仔细的网页设计者,那么你一定有发现这样一个现象:在浏览带有Flash动画的页面,当你把鼠标移动到Flash动画上时,Flash动画四周就会出现虚线框,点击一下方才可以激活。虽然这并不影响Flash动画的播放,但对于具有交互功能的Flash来说,就会给访问者多加了一个操作步骤,效果无疑会大大折扣。 为什么会出现虚线框? 我们知道在以前Flash动画虚线框是不存在的,那么为什么最近会出现这个现象呢?原来微软考虑到IE浏览器的安全性问题,针对IE发布了一项更新补丁,禁止了IE浏览器的ActiveX控件自动激活功能。这样就造成了本来可以直接点的Flash,现在要先多点一下这个虚线框来激活了。 去掉虚线框 既然能加的上去,就一定能去的掉。首先在网页代码之间插入如下代码: <SCRIPT src="objectSwap.js" type=text/javascript> </SCRIPT> 这样网页在加载的时候会自动对页面中的 object 标签进行重写,实现自动激活。 点击这里下载objectSwap.js文件 上面说的方法是外部JS调用法,其实我们熟悉常用的Dreamweaver最新版8.02版也给出了这个问题的解决方法。大家把Dreamweaver升级到8.02版后,再插入Flash文件时,会加入一个脚本来解决这个问题。

用Flash AS推导三角形面积
本文示例源代码或素材下载 先创建一个三角形,然后复制一个并旋转移动与原图拼成一个平行四边形,平行四边形面积=底×高,所以三角形面积=底×高÷2。 演示文件地址:http://file.ddvip.com/2007_08/1187865825_ddvip_5444.rar [过程] 1、创建一个影片剪辑,在帧上写如下代码: 2、把上面元件拖入到主场景中合适的位置。

Flash AS实例教程:用纯AS制作火焰特效
本文示例源代码或素材下载 首先申明不是偶原创,偶只是把效果综合了一下。粒子变幻效果忘记是谁的了,知道出处的朋友请提醒,偶在以后补上。火焰瑞流效果是来自一位朋友的博客里面的摄像头火焰特效,也无处可考证出处,请知道的朋友提醒,偶以后补上。还有个返回无重复随机数组的函数在里面,是坛子里的朋友的,知道出处的朋友也请告知,呵呵呵... 以下是关键原码和原始文件,感兴趣的朋友可以看看:Fire_ok.as:

用Flash Actionscript简单方法实现复杂的图表
代码如下://这个数组的最前一位和最后一位,在这里的作用只起到占位的作用dataTable=[];dataTable.push(["1851-1860",8,5,5,1,0,19]);dataTable.push(["1861-1870",8,6,1,0,0,15]);dataTable.push(["1871-1880",7,6,7,0,0,20]);dataTable.push(["1881-1890",8,9,4,1,0,22]);dataTable.push(["1891-1900",8,5,5,3,0,21]);dataTable.push(["1901-1910",10,4,4,0,0,18]);dataTable.push(["1911-1920",10,4,4,3,0,21]);dataTable.push(["1921-1930",5,3,3,2,0,13]);dataTable.push(["1931-1940",4,7,6,1,1,19]);dataTable.push(["1941-1950",8,6,9,1,0,24]);dataTable.push(["1951-1960",8,1,5,3,0,17]);dataTable.push(["1961-1970",3,5,4,1,1,14]);dataTable.push(["1971-1980",6,2,4,0,0,12]);dataTable.push(["1981-1990",9,1,4,1,0,15]);dataTable.push(["1991-2000",3,6,4,0,1,14]);dataTable.push(["2001-2005",7,2,3,3,1,9]);//这个函数把数组中的每一个元素中的第n个元素存在一个临时的数组,返回这个数组get2dArrayValues=function(handle,n){temp=[];for(vari=0;i<handle.length;i++){ temp.push(handle[n]);}returntemp;};//重点讲一下这个函数drawGraph=function(handle,values,max,grpWidth,grpHeight,Style,xoffset,yoffset){//这两句确定了每个数据点应该相隔多远varxincrement=grpWidth/values.length;varyincrement=grpHeight/max;//为图表创建占位符,依据xoffset,yoffset移动它.重复利用handle变量名,指向createEmptyMovieClip方法创建的子电影剪辑handle=handle.createEmptyMovieClip("graphline"+getTimer(),handle.getNextHighestDepth());handle._x=xoffset;handle._y=yoffset;//定义beginFill样式,开始点handle.lineStyle(0,0xFFFFFF,4);handle.moveTo(0,grpHeight);handle.beginFill(Style[0],Style[1]);//绘制第一根线条,它的值是变化的,保持把这个lineTo与下面的lineTo值隔离开,x是0,y稍微复杂一点handle.lineTo(0,grpHeight-(values[0]*yincrement));//有了上面的起始位置,那么接下来只要遍历余下的值就可以了for(vari=1;i<values.length;i++){ handle.lineTo((i*xincrement),grpHeight-(values*yincrement));}//数组是以0位开始的,所以这里要减1handle.lineTo((values.length-1)*xincrement,grpHeight);//封闭形状handle.lineTo(0,grpHeight);handle.endFill();};//建立一个MCmyGraph=this.createEmptyMovieClip("graphHolder",0);//调用函数后返回的值赋予F1varF1:Array=get2dArrayValues(dataTable,1);//调用函数,求出每个点的位置drawGraph(myGraph,F1,12,800,200,[0x3C4B6C,5],22);//以下同上varF2:Array=get2dArrayValues(dataTable,2);drawGraph(myGraph,F2,12,800,200,[0x3C4B6C,25],22);varF3:Array=get2dArrayValues(dataTable,3);drawGraph(myGraph,F3,12,800,200,[0x3C4B6C,45],22);varF4:Array=get2dArrayValues(dataTable,4);drawGraph(myGraph,F4,12,800,200,[0x3C4B6C,65],22);varF5:Array=get2dArrayValues(dataTable,5);drawGraph(myGraph,F5,12,800,200,[0x000000,85],22);

Flash AS实例教程:用纯AS制作的钟表动画
本文示例源代码或素材下载 [效果] 文章末尾处链接地址可下载 [代码]把以下代码复制到主场景中的第一帧上://画钟表边线this.createEmptyMovieClip("bianxian_mc",1);with(bianxian_mc){lineStyle(2,0xCCCCCC);moveTo(Math.cos(0*Math.PI/180)*96,Math.sin(0*Math.PI/180)*96);for(vari=360;i>=0;i--){ lineTo(Math.cos(i*Math.PI/180)*96,Math.sin(i*Math.PI/180)*96);}_x=100;_y=100;}//创建时间动态文本this.createTextField("my_txt",2,0,0,0,0);with(my_txt){autoSize=true;textColor=0x555555;_x=70;_y=60;}//画12个表格this.createEmptyMovieClip("biaoge_mc",3);with(biaoge_mc){lineStyle(2,0xCCCCCC);moveTo(0,-96);lineTo(0,-92);_x=100;_y=100;}for(i=1;i<12;i++){duplicateMovieClip(biaoge_mc,"biaoge_mc"+i,3+i);setProperty("biaoge_mc"+i,_rotation,i*30);}//画时针this.createEmptyMovieClip("shizhen_mc",16);with(shizhen_mc){lineStyle(4,0x666666);moveTo(0,0);lineTo(0,-60);_x=100;_y=100;}//画分针this.createEmptyMovieClip("fenzhen_mc",17);with(fenzhen_mc){lineStyle(2,0x666666);moveTo(0,0);lineTo(0,-75);_x=100;_y=100;}//画秒针this.createEmptyMovieClip("miaozhen_mc",18);with(miaozhen_mc){lineStyle(1,0x666666);moveTo(0,0);lineTo(0,-90);_x=100;_y=100;}//让时针、分针、秒针动起来this.createEmptyMovieClip("time_mc",19);time_mc.onEnterFrame=function(){my_date=newDate();shi=my_date.getHours();fen=my_date.getMinutes();miao=my_date.getSeconds();shizhen_mc._rotation=shi/12*360+fen/60*30;fenzhen_mc._rotation=fen/60*360+miao/60*6;miaozhen_mc._rotation=miao/60*360;if(shi<10){ shi="0"+shi;} if(fen<10){ fen="0"+fen;} if(miao<10){ miao="0"+miao;} my_txt.text=shi+":"+fen+":"+miao;};//画中心圆this.createEmptyMovieClip("yuan_mc",20);with(yuan_mc){beginFill(0x555555);moveTo(Math.cos(0*Math.PI/180)*4,Math.sin(0*Math.PI/180)*4);for(vari=360;i>=0;i--){ lineTo(Math.cos(i*Math.PI/180)*4,Math.sin(i*Math.PI/180)*4);}_x=100;_y=100;}

面向Flash AS初学者的实例教程:单选题
本文示例源代码或素材下载 [前言] 1、写本教程得到了“终极讨厌”老师的大力帮助,在此表示感谢! 2、初学者写的教程面向初学者,让我们成为高手吧! [效果] [步骤] 第一步:在主场景中从下到上依次创建几个图层——“背景”、“标题”、“题目”、“答案显示”、“答案按钮”、“成绩”、“判断”、“交卷”、“动作”。(“背景”、“标题”、“题目”图层中设置较简单,这里不再叙述)。 第二步:在“答案显示”图层中,拉出几个动态文本框,分别放在每一题的括号中,变量名依次为daan1、daan2、daan3、daan4。 第三步:创建按钮元件,画一个矩形,把矩形拖到最后一帧;打开库,把刚才制作的按钮分别拖到“答案按钮”图层上,放在每一题的选项上,第一题各按钮实例名分别为t1_btn1、t1_btn2、t1_btn3、t1_btn4,第二题把t1改为t2,依次类推。

Flash电子杂志常用滚动区域控制代码
做Flash电子杂志经常需要做文字滚动和图片滚动,于是我编写了这个代码可以方便快捷的使用,提高工作效率。 我一直都在使用这个代码,比较实用,希望大家也喜欢。 使用方法: 做两个按钮做滚动:up_btn,down_btn 做遮罩定下显示的范围:mask_mc 移动的mc:move_mc 把代码贴上去就OK!! 我整理了一下,与大家分享 设置代码CODE: /*program : hqlulumail : hqlulu@163.comwebsite : http://www.aslibra.compublish : 2006-10-31*///判断是否移动var move_it:Boolean = false;//移动方向var dir:Number = 1;//移动速度var speed:Number = 5;//按下的移动速度加倍var scale:Number = 3;//滚轮的移动速度加倍var scale_mouse:Number = 2;//设置上下的边距var margin:Number = 2;//计算移动的范围var max1:Number = mask_mc._y+margin;var min1:Number = mask_mc._y-move_mc._height+mask_mc._height-margin;//是否自动设置遮罩var is_set_mask:Boolean = false;//是否支持鼠标var is_mouse_enable:Boolean = true;//设置按钮、遮罩和移动的对象var my_move_mc:MovieClip = move_mc;var my_up_btn:Button = up_btn;var my_down_btn:Button = down_btn;var my_mask_mc:MovieClip = mask_mc;