推荐阅读
详细解析通过设计让APP变快的6个方法
我们都知道不管网页还是移动应用,响应速度都是最重要的体验指标之一,并且移动应用的网络环境不稳定,速度的体验显得尤为重要。其实速度优化不仅是程序员的事,设计,也能够让APP变得更快。1.后台执行这是一条很通用,也容易理解的方法。用户不会愿意盯着进度条傻傻地等待,除了“取消”没有其他选择。在系统处理一些网络任务的时候,完全可以允许用户做一些其他的事情。各大平台的发微博,都采用了后台执行。云阅读的离线下载也采用后台执行。而微博的看长图(或视频),是个反例。网络不给力时,要么等待1分钟让图加载完,要不就只好放弃看图。为什么不能让图加载的同时,用户可以看其他微博呢?2.在载入前显示内容客户端与web的一个不同点,客户端的显示内容包括本地数据和网络数据两部分。在设计界面时,将更多的信息放在本地,在网络数据未载入时即显示本地数据,让用户产生一种“已经载入一半了”的错觉,即使最终的耗时一样,心理感受也会更快。当然把数据过多地写在本地,会牺牲一些灵活性,需要根据具体情况考虑。具体请看twitter、Facebook、Vine等优秀产品的启动画面,虽然同是静态图片,但它们不使用LOGO而假装已经载入了“导航栏”和“标题栏”,让人感觉“点击后立即就启动了”。
CS5快速给偏暗的人物磨皮
本教程运用历史记录画笔磨皮的方法跟用蒙版磨皮方法大致相同,先把图片稍微调亮后,对图片模糊处理,然后设置好快照位置,用历史记录画笔涂抹脸孔即可。 1、打开原图素材,按ctrl+J复制一层,选择复制层,设置图层样式为“滤色”,不透明度为“50%”。按“ctrl+E”合并两个图层。 参数设置如下图 2、执行 滤镜 < 模糊 < 高斯模糊,根据皮肤的好坏调节像素, 参数设置如下图
UGA5.5实例教程【文字淡出淡入】
2.点祯-“添加条幅文本”输入文字(佛前青莲).文字大小-25.颜色-白色.字体随意.在预览中把文字拖至画布左侧中间位置3.选-效果-进入场景选择-减弱-画面桢设为10;退出场景选-画面-画面桢设为10;开始预览-满意后点确定-创建单一对象如图:梅风剑提示:为使文字竖直,可以每输入一个字回车一下的位置4.点最后一祯(12祯),重复第2步/第3步操作.依此点祯-“添加条幅文本”依此输入文字(梅风剑)/(一花一世界)/(一佛一如来)/(梦寻佛踪影)/(莲香溢梦中)/(风弄花瓣雨)/(迷失莲花丛)/(佛伴我心眠)/(一睡五百年)梅风剑提示:记住不是一次性把文字复制粘贴,而是--依此分别重复第2第3步操作如图添加好
摄影时如何让森林美女更神秘一些
面对偌大的森林场景,影友们经常会觉得找不到神秘感觉的拍摄思路,其实只要紧记着几个拍摄要点就能拍出不少好片子,这次我们挑了三张照片与专业摄影师一起探讨在森林里面拍出神秘感觉人像的小技巧吧。 佳能EOS 5D,EF28-70mm,F2.8,ISO100,1/60秒 摄影教程 “树林中光线比较幽暗,因为树林的上空大部分都被树叶挡住了,所以我选择了一块透光性较好的地方拍摄;此外我还使用了外拍灯为人物打逆光和侧逆光;这种做法足够展现出森林里的大气感觉吗?” 有层次的光线过渡非常重要 这张片子的整体氛围让我眼前一亮,照片很好地展现了森林的那种神秘、低调的感觉。首先摄影师运用了柔和光比,配合上摄影师选择的场景,使得场景,在一棵有杈的树下同时有密有疏的绿叶中,女模特一身白色连衣婚纱显得特别出彩,主次分明。而且镜头畸变控制非常好,较少的焦外变形以及模特修长的身形显得这张图特别的高档。 在我看来唯一不足的在后期方面,阳光从树荫之中射入的光线可以更有层次些,从明到暗的画面过渡会更加出彩,大概作者在做后期的时候稍微有一点偷懒了,只是用画笔工具将左上角、右上角以及人物部分的局部光线简单地加亮了,没有留意到暗部以及亮部之间的衔接,使得两者过渡有点含糊了。总的来说,该作品还是很好看的,无论是构图还有裁图方面都很有心思,让观图者看上去很舒服。 佳能EOS 5D,105mm,F2.8,ISO500,1/60秒
最新发布
用Fireworks MX制作圆角矩形六法(图)
网页制作中经常用到圆角矩形――两角圆弧形、两角直角形(如图1),笔者总结了六种简便、实用的制作方法,现介绍如下: 一、菜单命令 1、选取工具箱的圆角矩形绘制工具,绘制一个圆角矩形; 2、绘制一个直角矩形,放置到圆角矩形需要产生直角的那一端,位置摆放如图2所示; 3、同时选定两个对象,执行菜单命令“Modify→Combine Paths→Punch”,效果已经出现了,请看图3。 二、修改圆角矩形角度 1、绘制一个圆角矩形;
进入Flash MX组件时代之二 内置组件的使用(下)
2.5 PushButton(推动按钮) PushButton相对于其它内置组件来说其设置与功能相对比较简单,但它却与常规按钮划出了一道界线。在FlashMX中许多地方讲求的都是事件机制,而PushButton就是将原来普通按钮的对象触发机制封装成了事件触发机制。 现在我们从Components面板中拖拽一个PushButton组件到场景中,然后打开它的参数设置面板,如图23所示。 Labels(标签):PushButton显示的提示名称。 ChangeHandler:执行用户自定义的函数。该参数选项的参数为用户定义函数的函数名。 显然PushButton的参数设置内容比较少,而下面我们将举一实例来分析简单区别一下 普通按钮与PushButton的不同,在此例中我们将自定义一个函数RotateTriangle(),利用此函数我们将控制场景中的一个三角形实体物件Triangle,我们可控制该实体旋转角度,当角度大于等于100度时则PushButton失效,但普通按钮却可继续工作。 如上图所示,如果我们要控制Triangle的旋转角度按通常的方法一般是:新建一个普通按钮,然后可在按钮的代码操作区写上如下代码。on(press){Triangle._rotation = Triangle._rotation+10;} 这样我们就可以轻松的对Triangle对象进行角度旋转控制。 然而,现在由于有了PushButton按钮,我们就可以将控制的操作代码移至到Frame上, 我们现在编写一个简单的自定义函数RotateTriangle(),其代码如下:function RotateTriangle() {Triangle._rotation = Triangle._rotation+10;if (Triangle._rotation>=100) {pushTriangle.setEnabled(false);}} 我们在控制Triangle实体对象旋转的同时作了一个简单的条件判断,当Triangle的旋 转角度大于等于100的时候我们规定PushButton将不再可以控制,即:可用性为否。此时对于PushButton的操作只需将它的ChangeHandler参数设置为RotateTriangle即可而无需再编写任何代码,但倘若普通按钮要调用此函数则需添加如下内容代码:on(press){RotateTriangle()} 在此实例中我们函数的代码量十分的少,控制的内容也相当的少,因而似乎没有感觉到 普通按钮与PushButton的区别所在。但是我们绝不能光光看到上面对PushButton的可用性进行控制的内容区别,其实普通按钮与PushButton的区别还在于代码编写机制的改变,由此我们完全可以将场景中的按钮操作代码放置在Frame中,而用PushButton的ChangeHandler来调用,可以摆脱以往那种单个按钮中进行操作代码分别编写的时代,这样做的好处不光光是提高代码管理能力(在按钮控制内容相当多,按钮控制代码相当多的情况十更显有效)而且对于提高影片执行效率也相当有益处。 2.6 ScrollBar(滚动条) 应该说ScrollBar组件是应用最为广泛的组件,我们只需在场景中放置动态文本框,然 后将ScrollBar组件拖拽到场景中并将它粘缚在相应的动态文本框上,再利用LoadVariables或是其它的方法将文本内容导入到该文本框内就可以利用ScrollBar直接控制文本的滚动显示了,相对于Flash4与Flash5的历史,我们再也无需自己编写那么多繁重的代码内容,类似的操作已显得这般的轻松与简单。 现在我们从Components面板中拖拽一个ScrollBar组件到场景中,然后打开它的参数设置面板,如图25所示。 Target TextField(文件对象):粘缚的文本对象在场景中的实体名称。 Horizontal(水平):判断滚动条的状态是水平或是垂直状态。False:滚动条为垂直状态;True:滚动条为水平状态。 下面我们会将一段文本信息载入到场景中的动态文本内,然后直接利用ScrollBar控制 文本框内的文本进行上下滚动显示。 首先放置一个动态文本框,将实体名称命名为ScrollBarDemo,并将文本显示设置为Multiline(多行显示),如下图26所示: 然后从Components中拖拽ScrollBar组件到文本框上,此时我们需选中Snap to Ojbect 选项则ScrollBar会自动粘缚到文本上,ScrollBar的Paramters中的Target TextField会自动切变为文本框在场景中的实体名称,此处为ScrollBarDemo。 然后我们在场景中新建一个ActionScript层,并在关键帧中输入如下的代码内容://-----------------------------------------------------------------------------//函 数 名:loadTextMX();//功 能:文本的导入//所需技术:xml,load,onLoad,htmlText//所需参数:url,textbox//适用版本:FlashMXSystem.useCodepage = true;//自定义函数loadTextMX,loadTextMX将文本解析为XML格式并支持文本Html的显示movieclip.prototype.loadTextMX = function(url, textbox) {loadVarsText = new XML();loadVarsText.load(url);loadVarsText.onLoad = function(success) {if (success) {textbox.html = true;textbox.htmlText = this;} else {textbox.html = true;textbox.htmlText = "< br>< font color=\"#ff0000\">提示:未找到相应文件!< /font >";}};};//利用自定义函数将ScrollBarDemo.txt文本内容载入到ScrollBarDemo文本框内loadTextMx("ScrollBarDemo.txt", ScrollBarDemo);
进入Flash MX组件时代之二 内置组件的使用(上)
2.1 CheckBox(复选框) 在许多软件中,复选框组件是经常会被用到的,如Visual C++的资源编辑器中我们就可以看见很多的复选框。复选框可以允许我们选择一个或者多个选项,当某选项被选中后,该复选框的小框里就会出现一个小勾。 我们把Components面板中的CheckBox(复选框)组件拖拽到场景中,然后打开它的参数设置面板,如图5所示。 同样的,你也可以选择Window菜单下的Component Parameters命令,或是按快捷键Alt+F7调出Component Parameters(组件参数)面板来设置组件的参数,如图6所示。 在CheckBox组件的参数面板中,各项参数的功能如下: Label(组件名称):命名复选框组件,如图7所示。 InitialValue(初始值):初始化组件的状态为选中(true)或是未选中(false)。Alignment(对齐方式):设置复选框的可选方式。Left:勾选框在左面,right:勾选框在右边。 如图7所示。 Change Handler(处理函数):执行用户自己定义的函数,该设置选项的参数为用户定义函数的函数名。在函数被调用前,我们需要对它进行定义。 现在我们看一个简单的组件效果。该效果中,当我们选中组件“CheckBox1”时,组件“CheckBox2”也会同时被选中。当组件“CheckBox1”不被选中的时候,组件“CheckBox2”也不被选中,而且会变成灰色,即该组件不可用,但两个组件的名称都会改变,效果如图8所示。但选择组件“CheckBox2”却不会影响到组件“CheckBox1”,效果如图9所示。
一些简单的GIF制作心得
关于对GIF文件的优化每个GIF工具都具有自动优化的功能,这里首推“GIF MOVIE GEAR”(以下简称“GMG”),因为比较“Ulead GIF Animator”(以下简称“UGA”),它的优化幅度要稍微大一些。优化方法很简单,先在“帧-属性”对话框中确认一下如下所示:然后按一下工具栏中下图这个标记出来按钮就好了: 优化文件的好处就是能一定幅度的减小文件的容量,利于网络传输,本站收集GIF的其中一个要求就是要优化容量,所以还是希望每个热心的GIF作者能够进行一下这么个简单的步骤。对于不透明的场景图,则要在优化前把全局帧的属性设定为如图所示: 上面这幅飞行器平移的动画,在帧数减少三分之一的情况下,视觉效果没有大的差异,可以考虑隔帧或者隔两帧删除一帧的办法来减小文件的容量,适当的可以调整剩下的帧的帧率来弥补一下流畅度。关于图片的“留白”GIF图片不需要,也不应该留下大片的空白画面,因为图片是放在网页上展示的,为网页的布局方便来着想,只要不失真,图片面积自然是越小越好。还是介绍用GMG剪切留白的方法,在“动画-剪辑”菜单中,打开这个对话框:
Flash AS 实例进阶-图片闪白切换
“闪白”换场是电视拍摄用语,是画面切换过程中场景出现空白,有人将这一手法应用到网页图片的切换上来,也是一种不错的组图显示效果,这里我们用动作脚本来制作一个这样的实例。 源文件下载 >点击查看动画效果<实例2-8闪白 基本思路 ① 构建一个数组放置库中的多个类型为 MC 的图片。 ②将数组中的元素依次加载到主场景。 ③利用帧循环来依次改变各 MC 的状态。 新知识点 补充模糊滤镜 实例说明
Flash AS 实例进阶-键值捕获
Flash 动画的交互性是通过鼠标和键盘进行,前面的章节讲的都是鼠标控制,本节开始接触键盘控制,响应键盘的方法有几种,但归根结底可以用一句通俗的话概括,就是程序运行中,发现哪个键被按下了,并执行相应的动作,这里介绍的是通过判断获取的键控代码值来实现键盘控制,还是老套路,使用一个这样的实例,这是去年作的一个练习, 就叫距离产生美吧。 源文件下载 点击查看动画效果<实例2-9 键盘控制 基本思路 ① 主场景中放置 2 个保持一定距离的 MC 。 ②再放置一个空 MC 用来写脚本,当然,也可以写到前面的 MC 实例上,这样是便于阅读和理解脚本。 ③按下↑↓←→键两个 MC 都向同方向运动,并始终保持固定的距离和前后关系,还要保持朝向和移动的方向的一致 ④设定边线,不向线外运动。 ⑤松开按键,两 MC 保持原始方向。 新知识点
Flash AS 实例进阶-FLASH载入等待 Loading
在网络上看 Flash 动画是将 SWF 文件边下载边播放,由于网络速度原因,有时下载速度低于播放速度,这样就出现影片断断续续现象,为 Flash 动画添加 Loading 的作用就是使影片连贯播放。 源文件下载:第一部分;第二部分;第三部分;(依次命名为1.part1.rar;1.part2.rar;1.part3.rar,,即可正常解压。) 点击查看动画效果<实例2-10 Loding 基本思路 ①令影片开始处于等待状态 ② 检测影片的总长度和下载的长度,并时刻进行比较,当下载完全部或大部后开始播放。 ③在影片下载过程中可以有多种辅助的显示形式,如:进度条,下载比例,下载字节数,或各种表示下载中的 MC 。 新知识点 返回已为 my_mc 指定的影片剪辑加载(流处理)的字节数。您可以将此值与 返回的值进行比较以确定已加载影片剪辑的百分比。 以字节为单位返回 my_mc 指定的影片剪辑的大小。对于那些外部的影片剪辑(加载到某个目标或某个级别的根 SWF 文件或影片剪辑),返回值为 SWF 文件的大小。
Flash AS 入门-自定义函数
如果有一个功能或者一段代码要经常使用,则可以把它写成自定义函数,在用到的时候调用它。使用函数是为了简化编程的负担,减少代码量和提高效率。 一、 Flash中自定义函数的一般形式为: function 函数名称(参数1,参数2,……,参数n){ //函数体。即函数的程序代码 } 自定义函数必须调用才有效。调用自定义函数的一般形式为: 路径.函数名称(参数1,参数2,……,参数n) 函数就像变量一样,必须正确使用目标路径才能调用它们。 二、例题 例1 假设我们要定义一个计算矩形面积的函数,可以这样:(打开21.1.fla)
Flash AS 入门教程-事件处理函数及画线语句
我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件中是位置是“内置类影片MovieClip事件”。 源文件下载 一、 flash 2004提供了18个事件,我们在这里主要介绍Button.onRelease和MovieClip.onEnterFrame这两个件的用法。 1、Button.onRelease的用法: 这里my_btn是按扭的实例名。当按下并松开按钮时调用。注意,这里的事件都是以函数形式表示的,因此,我们可以叫做事件处理函数 2、MovieClip.onEnterFrame的用法: 这里my_mc是影片剪辑的实例名。这个事件处理函数以 SWF 文件的帧频持续调用,这个函数的作用和在mc上写的事件onClipEvent (enterFrame)类同,但是,使用起来更方便更有效。 从用法中可以知道,必须定义一个在调用事件处理时执行的函数。我们看一个实际例子。 例 3.2.1 前一节的例2中我们在“控制”按钮、“小松鼠”影片剪辑或者“小球”影片剪辑上按下鼠标时,调用自定义函数,使小松鼠和小球分别按照相反的方向运动。现在我们把这三个事件改为写在帧上的事件函数: