推荐阅读
Photoshop处理照片背景教程
1、复制图层。 2、滤镜→模糊→高斯模糊。 3、设置模糊半径(可点开“预览”选择合适的参数) 4、将复制图层的不透明度设置为80%左右。 5、用橡皮擦工具将想要保留的主体擦出来。这个过程需要耐心,细微之处要把橡皮擦设得很小。 6、慢慢地把主体都擦完了,再把复制图层的不透明度设置成100%。(也可以是其他数字,要根据具体情况确定) 7、最后,把图层合并,OK…… 如果图片的背景与主体反差较大、主体比较单一时,处理起来就简单多了。打开图片后,可以直接用魔棒工具(或套索工具)选取背景(或者选取主体后再反选),然后用模糊工具的“镜头模糊”或“高斯模糊”处理即可。
平面设计中标志LOGO的设计思路讨论
说到设计,我们就不得不谈一下LOGO的传统设计:LOGO传统设计,重在传达一定的形象与信息,真正吸引我们目光的,不是LOGO标志,而是其背后的图象信息。举个例子,一本时尚杂志的封面,相信你首先注意到的是其上漂亮的女士或得体的服装,如果你感兴趣才会进一步去了解相关的其他信息。网站LOGO的设计,跟传统设计有着很多的相通性,但由于网络本身的限制以及浏览习惯的不同,它还带有许多与之相异的特点。比如网站LOGO一般要求简单醒目,在少量的方寸之地,除了表达出一定的形象与信息外,还得兼顾美观与协调。因此,一位优秀的传统设计大师,不一定胜任网站设计;而一位网站美术设计大师,也许只是传统设计中的菜鸟…… 其实,就在我们大谈LOGO设计的时候,感到文字的苍白无力,因为在我们的实际制作之中,很多东西都是难于用语言表达出来的,有时候是种灵感,有时候是种仿效,而更多的时候是通过繁琐的工作与多次的尝试完成的。在实际的设计中没有你非得做什么的限制,更没有放之四海皆准的真理,但也有一些比较普遍存在的问题值得注意,而本文就将围绕这些问题剖析我们的LOGO设计思路。 为了让大家清楚明白地掌握我们的意图,我们将用一个LOGO的实际制作过程进行阐述。 一、形体 1、原理 我们周围的世界首先是一个形体的世界,即使缺少了颜色,光亮,质地等元素,大多数物体还是可以凭其形体辩认出来。因此,我们把它作为我们LOGO设计的第一步。 通常地,当我们开始进行LOGO设计时都会有一些由真实形体引发的线索:农产品公司可能会在它们的LOGO中放置农作物形体;出版社也许会在LOGO中放置书本形体;电脑公司也许会在其LOGO中放置电脑形体,等等。但在创作过程中少有直接了当进行放置的,艺术创作常常将自然形体与幻想设计集中在一块,LOGO创作则往往通过技术提取与朴素制作来完成。 所谓"技术提取",就是在LOGO设计中,把实际形体与网站内容相结合,用会意体现内容,用轮廓体现形体。而"朴素制作",则是摒弃不相关的元素信息,力图用最简单的方式表达最丰富的内涵。一个好的LOGO,可以让访问者清楚地知道它的制作原理,但与此同时又能让他感到很难做出同样的效果。如图一,我们可以清楚地看到它是由字母与线条制成,但如何实现它却需要一些精细的工作,如层的运用,字体的镂空,等等。
接触Dreamweaver 4的Flash按钮制作
Dreamweaver 4在对象面板的“Common”组中增加了一个“Flash Button”对象图标,点击这个图标,就可以利用这个对象的功能制作出各种各样的按钮,并自动插入到网页中。至于你是否懂“Flash”则无关紧要,因为在整个过程中你只是点点鼠标而已。请看下面这个Flash按钮: 上面这个按钮当鼠移到按钮上面时,那个五角星会转动,单击按钮可链接到一个网页,另外,由于采用了矢量图形和文字,任意放大或缩小均不失真。下面我们就以上面这个按钮的制作为例来说明Dreamweaver4 的“Flash Button”对象的使用方法: 1、在需插入按钮的地方用鼠标点一下,然后点击对象面板上那个“Flash Button”图标,就是下图用红线圈起来的那个: Dreamweaver4 对象面板 当你点击对象面板上那个“Flash Button”图标后,立即弹出一个“Insert Flash Button”对话框,如下图所示: Insert Flash Button对话框 2、我们来仔细看看这个对话框,看懂了它,Flash按钮也就会做了。Sample:示例,就是当你在下面的按钮类型中选择一种按钮类型时,在这个窗口中显示出来,鼠标在上面移动可以看到Flash效果;style :按钮类型选择,你可在它右面那个选择窗口中选择一种你喜欢的按钮;Button Text:输入按钮上的文字,也就是把按钮上的“Button Text”文字换掉;Font :按钮上文字的字体;Size :按钮上文字的大小;Link :按钮对应的链接文件。就像超级链接一样可以使用相对地址也可以使用绝对地址。Target:和超级链接的Target相同,即指定链接的网页在那个窗口中打开。BgColor:设置按钮的背景颜色。这点很重要。按钮默认的是白色背景,必须把按钮的背景色设置成与插入按钮地方的背景色相同,才可以使你的按钮无缝嵌入页面。Save As:按钮的Flash文件保存的文件名,输出为Swf格式,你也要以按“Browse...”按钮打开文件夹选择保存按钮文件的路径。Apply按钮:它与OK按钮不同的是,按下它后,将按对话框的设置形成按钮文件并插入到网页指定的位置,但并不退出对话框,你可以继续插入按钮;Get More Styles...按钮,若你感到对话框的“Style”选择框中没有你合适的按钮,则可以上网通过按钮GetMore Styles查找更多的样式。 3、全部按钮插入结束,按OK返回网页编辑窗口。 Dreamweaver4的“Flash Button”对象,简单易用,但有一点非常遗憾:它现在不支持中文。我想在不久应该会解决,否则就太令人失望了。
3ds max6快捷键全收录
主界面快捷键 1.菜单快捷键File_New Scene(新场景) 【Ctrl+N】File_0pen File(打开文件) 【Ctrl+O】File_Save File(保存文件) 【Ctrl+S】Edit_Undo Scene 0peration(撤销场景操作) 【Ctrl+Z】Edit_Redo Scene 0peration(重做场景操作) 【Ctrl+Y】Edit_Hold(存放) 【A1t+Ctrl+H】Edit_Fetch(取回) 【A1t+Ctrl+F】Edit_Delete 0bjects(删除对象) 【Delete】Edit_Clone(克隆) 【Ctrl+V】Edit_Select A1l(全选) 【Ctrl+A】Edit_Select None(不选) 【Ctrl+D】Edit_Select Invert(反选) 【Ctrl+I】Edit_Select by Name(按名称选取) 【H】Tool_Transform Type―In(变换输入) 【F12】Tool_A1ign(对齐) 【Alt+A】Tool_Spacing Tool(间隔工具) 【Shift+I】Tool_Normal Align(法线对齐) 【Alt+N】Tool_Place Highlight(放置高光) 【Ctrl+H】Tool_Isolate Selection(孤立选择) 【Alt+Q】Views-Undo View Change(撤销视图更改) 【Shift+Z】Views_Redo View Change(重做视图更改) 【Shift+Y】Views_V1ewport Background(视口背景) 【Alt+B】Views_Update Background Image(更新背景图像) 【Alt+Shift+Ctrl+B】Views_Match Camera To View(摄影机与视图匹配) 【Ctrl+C】Views_Redraw All Views(重绘所有视图) 【`】Views_Adaptive Degradation Toggle(自适应降级开关) 【O】 Views_Expert Mode Toggle(专家模式开关) 【Ctrl+X】Graph Editors_Particle View(粒子视图) 【6】Rendering_Render Scene(渲染场景) 【F10】Rendering_Environment(环境) 【8】Rendering_Render to Texture(渲染纹理) 【0(零)】Rendering_Material Editor(材质编辑器) 【M】Customize_Show/Hide Main Toolbar(显示或隐藏主工具栏) 【Alt+6】Customize_Lock User Interface(锁定用户界面) 【Alt+0(零)】MAXScript_MAXScript Listener(MAXScript监听器) 【Fll】File Menu(文件菜单) 【Alt+F】Edit Menu(编辑菜单) 【Alt+E】Tools Menu(工具菜单) 【Alt+T】Group Menu(群组菜单) 【Alt+G】Views Menu(视图菜单) 【Alt+V】Create Menu(创建菜单) 【Alt+C】Modifiers Menu(编辑修改器菜单) 【Alt+O】Character Menu(角色菜单) 【Alt+H】Animation Menu(动画菜单) 【Alt+A】Graph Editors Menu(图形编辑器菜单) 【Alt+D】Rendering Menu(渲染菜单) 【Alt+R】Customize Menu(自定义菜单) 【Alt+U】MAXScript Menu(MAXScript菜单) 【Alt+M】Help Menu(帮助菜单) 【Alt+H】2.主工具栏和浮动工具栏快捷键Undo(撤销) 【Ctrl+Z】Redo(重做) 【Ctrl+Y】Select 0bject(选定对象) 【Q】Select by Name(按名称选择) 【H】Rectangle(矩形),Circle(圆形),Fence(篱笆),Lasso Selection Cycle(套索)选择循环 【Ctrl+F或Q】Select and Move(选定并移动) 【W】Select and Rotate(选定并旋转) 【E】本新闻共7页,当前在第1页 1 2 3 4 5 6 7 Select and Scale(选定并按比例变换) 【R】Scale Cycle(按比例变换循环) 【R或Ctrl+E】Snap Toggle(捕捉开关) 【S】Angle Snap Toggle(角度捕捉开关) 【A】Snap Percent(捕捉百分比) 【Shift+Ctrl+P】Align(对齐) 【Alt+A】Normal Align(法线对齐) 【Alt+N】Place Highlight(放置高光) 【Ctrl+H】Material Editor(材质编辑器) 【M】Render Scene(渲染场景) 【F10】Quick Render(迅速渲染) 【Shift+Q】Restrict to X(约束到X) 【F5】Restrict to Y(约束到Y) 【F6】Restrict to Z(约束到Z) 【F7】Restrict Plane Cycle(约束平面循环) 【F8】3.视口快捷键Front View(正视图) 【F】Top View(俯视图) 【T】Bottom View(仰视图) 【B】Left View(左视图) 【L】Perspective View(透视图) 【P】Isometric User View(等轴用户视图) 【U】Camera View(摄影机视图) 【C】Light View(灯光视图) 【Shift+4($)】Disable Viewport(禁用视口) 【D】Viewport Pop-up Menu(视口弹出菜单) 【V】Dynamic Resizing(动态重定大小) 【拖曳视口边界】Transform G1zmo Toggle(变换线框开关) 【X】Transform Gizmo Size Down(变换线框变小) 【-】Transform Gizmo Size Up(变换线框变大) 【=】Shade Selected Subobject Faces(给选定次对象面加阴影) 【F2】Wireframe/Smooth+Highlights Toggle (线框或平滑+高光开关) 【F3】View Edged Faces(查看边界面) 【F4】Polygon Counter(多边形计数器) 【7】Sound Toggle(声音开关) 【\】Show Safeframes(显示安全框) 【Shift+F】Default Lighting(默认光照) 【Ctrl+L】See-Through Display(穿透显示) 【Alt+X】Redraw All Views(重绘所有视图) 【`】Offset Snap(偏移捕捉) 【A1t+Ctrl+空格】Show/Hide Cameras(显示或隐藏摄影机) 【Shift+C】Show/Hide Geometry(显示或隐藏几何体) 【Shift+G】Show/Hide Grids(显示或隐藏栅格) 【G】Show/Hide Helpers(显示或隐藏辅助对象) 【Shift+H】Show/Hide Lights(显示或隐藏灯光) 【Shift+L】Show/Hide Particle Systems(显示或隐藏粒子系统) 【Shift+P】Show/Hide Shapes(显示或隐藏形状) 【Shift+S】Show/Hide Space Warps(显示或隐藏空间扭曲) 【Shift+W】4.关键点和时间控制项快捷键Selection Lock Toggle(选择集锁定开关) 【空格】Auto Key Mode(自动关键点模式) 【N】Set Key Mode(设置关键点模式) 【 ‘】Set Keys(设置关键点) 【K】Play/Stop Animation(播放或停止动画) 【/】Backup Time One Unit(回退一个时间单位) 【,】Forward Time One Unit(前进一个时间单位) 【.】Go to Start Frame(转到起始帧) 【Home】Go to End Frame(转到结束帧) 【End】5.视口导航控制项快捷键Zoom Mode(缩放模式) 【A1t+Z】Zoom Extents(缩放扩展) 【Alt+Ctrl+Z】本新闻共7页,当前在第2页 1 2 3 4 5 6 7
最新发布
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修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有一个大的计算量。