推荐阅读

使用PS快速去水印4种方法
今天分享一个简单的去水印案例教程,相信小伙伴在工作中经常有“去水印”的需要,下面小编就来教大家4种简单去水印的方法,适用于新手小伙伴,路过PS大佬可在评论区留下您的足迹。下面我们就一起来看看PS如何快速去水印教程吧!效果图1、内容识别使用矩形选框工具,选中水印的范围,点击鼠标右键,弹出对话框,选择填充,内容识别,水印就去除了;2、仿制图章工具按住Alt键,在没有水印的区域点击相似的色彩或图案进行采样,然后在水印区域拖动鼠标进行涂抹;3、污点修复画笔工具

用Photoshop制作电影胶片边框效果
本文中我们用Photoshop将多张照片处理成连续胶片的特殊效果。 先看效果图: 效果图 一、新建文件,参数如图: 新建文件 二、复制背景层,在背景副本上选择矩形选框工具画一矩形,CTRL+J复制一层,选择――载入选区,填充黑色。 复制图层

第二章:数据库的建立和数据表字段的设计
首先我们来看看我们上一章设计的新闻系统的构架。 index.asp 新闻系统主页 news-class.asp 新闻栏目列表页 news-show.asp 新闻内容页 从中看书我们在设计ACCESS数据库时至少需要有两个数据表: Article :新闻内容ArticleClass :新闻分类 然后我们需要有一个管理员的数据表来放置管理员的帐号密码.那么最后我们就确定整个数据库为三个数据表。 Article :新闻内容
最新发布

Flash实例精通:教你制作交互式二合一按钮
现实生活中我们注意到一些软件的按钮可以是两种状态,如:Windows Media Player的播放和暂停按钮就是二合一的,在播放时按钮显示为暂停,在暂停时显示为播放,这类按钮我们称之为“二合一按钮”,那么在Flash中如何制作出二合一按钮呢?如何进行交互呢?下面笔者为大家细细道来。 一、思路简析 把两个按钮放置在一个影片的两个帧,通过语句实现按钮的相互切换,按钮的交互性功能也是通过在按钮上加语句来实现的。 二、实例精通 下面我们来制作一个“二合一”按钮来控制一个影片对象的播放与暂停。 1. 打开Flash,分别按Ctrl+F8创建两个按钮;新建一个名为“按钮集”的影片,按F6键插入关键帧;按Ctrl+L打开Library库,然后将刚才制作的按钮分别放置在第1帧和第2帧的舞台中,单击下方的Properties(属性)按钮,在按钮的坐标中输入位置值,让两个按钮在舞台中的位置完全相同,这样在切换时不会出现偏移。 2. 将两个按钮的Instance Name(实例名)分别设置为“播放”和“暂停”;然后为按钮所在的两个帧都加上如下语句: stop(); 播放.onRelease=function(){ _root.影片.play();

好书精彩摘录(4):Flash卡通景物绘制
绘制Flash卡通背景,和绘制角色造型一样,必须注意体积空间的感觉,也就是说要遵从透视原理来进行设计。在Flash中,运用透视结构知识,结合层的概念,能够制作出极为活泼、生动的背景。和上一章一样,本章仍将针对广大Flash动画爱好者绘画能力不强的特点,把各种常用背景、道具元件的原型绘制方法进行深入浅出的分析,希望读者在阅读完后,能够以本章中所归纳的背景绘制方法为基本规则,同时发挥自己的创造力,设计出千变万化的卡通背景。(卡通背景图)5.1 如何绘制各种背景元素 在Flash中,卡通故事可以策划为在空中、地面、水中、宇宙等环境中发生,自然环境中的各种物体则成为了构成背景的元素,如图5-1-1所示。图5-1-1 元素图5.1.12 烟雾 烟雾可以看作许多球体的组合,如图5-1-45所示。图5-1-2 球体组合

FlashMX2004精彩特效:网格式复制
有时候需要将一些相同的东西以网格的形式排列在场景当中。拿一个苹果做例子吧,假如你在做小学算术课件的时候,你需要给学生出示九个苹果,排成三排。在以前的版本里,你只能画好一个苹果,然后按N次“Ctrl+C”和“Ctrl+V”,还要调整好位置。调整位置是个十分麻烦的过程,而用到时间轴的这种辅助功能,你可在几秒钟之内就搞定你要做很多次的效果。 1. 首先准备好一个苹果(如图1)所示。至于画法,不在本文的讨论范围,其实笔者也是一个Developer,只是画画还不是很“菜”。

FlashMX2004分布式复制残影效果
接触过Flash或者其它设计类软件的读者一定不会对残影效果感到陌生吧?有很多图形处理软件有这个功能,可旧版本的Flash却没有,要做一个这样的效果,最好的办法就是在别的软件中做好,然后转到Flash中。这样极其麻烦,而且不便于修改。而现在的Flash MX 2004的时间轴特效里面就带了一个这样的功能。让我们的设计者又可以高兴一把了。下面就用文字的残影效果来做例子吧。 1. 我们在场景中,输入要做效果的文字。以flash8.net为例,如图1所示。

FlashMX2004精彩特效之阴影
阴影效果想必大家不陌生吧?大多数时候,人家做阴影效果是增加图形的立体感,使之更形象化。想想以前我们是怎么做阴影效果的吧, 首先画好你的图形,然后复制一份, 换一种阴影颜色,放在原图下面。这样成了阴影。在Flash MX 2004却有一个更贴心的功能, 它能使你随意定义阴影的偏离距离以及阴影的颜色,直到你满意为止,.现在让我们来试试吧。 1. 我们还是以文本为示例。在场景中输入flash8.net,如图所示:

巧用Flash做网页背景音乐
很多个人主页中加入了美妙的背景音乐,给访问者一种美的享受。众所周知,网页背景音乐只能使用MIDI、MP3、WAV格式的音乐,其中MIDI音乐个头小巧、使用广泛,但MIDI音乐的音色单调、效果较差;MP3音乐虽然音质很好,但文件个头庞大;WAV音乐就更别提了,它是一个超级“胖子”。现在网上有很多Flash MTV,音质效果非常好,笔者突发奇想:能不能用Flash做网页背景音乐呢? 笔者找到了一个巧妙的办法――在网页中插入一个“看不见”的Flash MTV,打开网页时就自动开始播放,Flash中的音乐就相当于网页背景音乐了。Flash动画是流媒体文件,可以边下载边播放,因而用作网页背景音乐能达到即时播放的效果。如果自己会制作Flash,那么制作时只要音乐不要图像,效果会更好。 假设有一首Flash音乐,网址是:http://www.cqwww.com/001.swf,要把它用作网页背景音乐,只需在首页html代码的后面添加一行代码:,这样就能在打开首页时欣赏到悦耳动听的背景音乐了。需要注意的是,这个SWF文件必须是非交互式的,也就是无须点击“play”等按钮就可直接播放的。

进入Flash MX组件时代之六 改善组件用户体验
6.1 设置组件图标 原先我们在制作完成ToolTip组件以后,Library中的组件图标是以显示,这是组件的默认样式。假若Library库中使用的组件较多,而这些组件的图标样式又都是默认样式而无区别,这样便会极容易造成误认后果,因而不利用影片的设计制作。还有一点是,每位组件开发人员都希望自己编写的组件拥有自己的“个性化因素”,别人只要看见你组件的外观就知道这组件是由你编写制作,这就是所谓的“组件品牌”,即:类似于C++ Builder或是Delphi的第三方组件开发商一样,好的组件开发商都已拥有自己得一套品牌内容了。幸运的是,FlashMX已经轻易的解决了该问题,我们只需完成简单的步骤就可将原来的组件图标样式改换成自己想替换成的自定义图标样式,也让该组件的图标个性化。 首先,我们回顾一下原来ToolTip的Library的内容,如下图81所示,组件图标样式无“特殊性”。

关于Flash中linkage的loading问题
Flash提供的linkage给我们的编程带来了极大的便利, 我们甚至可以主场景里面不放如何元素,所有的元素都放在库中,然后用action来组织调用.但是,在默认的方式下,Flash必须将linkage的所有元素都下载完毕以后,才开始执行第一帧的action,这样就造成loading的失效. 怎么解决这个难题呢? 首先,对于库中所有的linkage,将 EXPort in first这个选项去掉(如图),

FlashMX特效之扩散与挤压
这是一种比较容易实现的效果。首先你可以在场景中建一个图形,然后,在后面时间轴的某一帧插入一关键帧,把原图的宽度和高度加以改变就可以得到了。变小的话那就是挤压效果,变大的话那就是扩散效果。其实在Flash MX 2004中,你大可不必这么做。可以通过时间轴特效直接生成这样的效果,而且更灵活。下面我们用时间轴特效做一个这样的效果吧。 1. 跟以前一样在场景中输入FLASH.NET字样。这时注意,FLASH.NET字不能打散。因为打散成Shape的话,这种特效是不支持的,假如你要保留你的字样,你可以把文字先打散,然后组合起来。如图所示。

进入Flash MX组件时代之五 创建用户组件
通过上节对FlahsMX组件的衍生过程的熟悉,相信我们对于创建属于自己的用户组件会有一定的前期认识。当然,上节的内容只是奠定组件编写的总体思维方式,而真正的组件创作过程并没展开。在本章内我们将带领大家一起探索用户组件创建的神秘历程。 1 创建组件相关的重要指令 组件的创建绝不同于构建一个简单的功能函数,也不同于制作一个相似功能的Smart Clip,由于FlashMX Components的创建引入了许许多多新的全新概念,因而也随之引入了一些全新的赋予新的作用与含义的函数与方法等操作指令,如自定义组件的函数#initclip #endinitclip和方法Object.registerClass()、addProperty()。由此,我们在正式邀请大家编写用户组件之前想请大家再一起来了解与熟悉一下这些关键的指令。 #initclip 适用版本:Flash Player 6. 语法:#initclip order 参数:order 整数,指定#initclip代码块的执行次序,可选。 说明: 该指令表示一组Component初始化动作的开始。在同时初始化多个MC时,可以使用参数order来指定初始化优先次序。Component初始化动作在相应MC组件已定义时才执行。若该MC属于输出影片类型,Component初始化动作就在该SWF文件第一桢上的动作之前执行。否则,Component初始化动作就在包含相关MC组件第一个实例的那一桢上的动作执行之前执行。 影片播放中component初始化动作仅仅执行一次,用于一次性初始化,比如类的定义与注册。 #endinitclip 适用版本:Flash Player 6. 语法:#endinitclip 参数:无 说明: 与#initclip一起配对使用,组件的初始化过程以#initclip开始以#endinitclips出现为结束。 Object.registerClass 适用版本:Flash Player 6 用法: Object.registerClass(symbolID, theClass) 参数: symbolID:影片剪辑元件的链接标识符,或动作脚本类的字符串标识符。 theClass:指向动作脚本类的构造函数的引用,或为 null,则不注册元件。 返回值: 如果类注册成功,则返回值为 true;否则,返回 false。 说明: 方法:将影片剪辑元件与动作脚本对象类相关联。如果元件不存在,则Flash在字符串标识符和对象类之间创建关联关系。 时间轴放置指定影片剪辑元件的实例时,该实例注册到由theClass参数指定的类,而不是注册到MovieClip类。 使用attachMovie或duplicateMovieClip方法创建指定影片剪辑元件的实例时,该实例注册到由stheClass参数指定的类,而不是注册到MovieClip类。 如果theClass为null,则sObject.registerClass 删除任何与指定影片剪辑元件或类标识符相关联的动作脚本类定义。对于影片剪辑元件,该影片剪辑的任何现有实例保持不变,但此元件的新实例将与默认类MovieClip 相关联。 如果元件已经注册到某类,则Object.registerClass方法将使用新的注册替换现有的注册。 影片剪辑实例被时间轴放置或通过attachMovie或duplicateMovieClip创建时,动作脚本使用指向此对象的关键字this调用适当类的构造函数。此构造函数在调用时不带有参数。 如果使用Object.registerClass方法将影片剪辑注册到动作脚本类而不是MovieClip类,则该影片剪辑元件不继承内置MovieClip类的方法、属性和事件,除非将MovieClip类包括在新类的原型链中。下面的代码新建一个名为theClass的ActionScript类,它继承了MovieClip类的属性: theClass.prototype = new MovieClip(); Object.addProperty 适用版本:Flash Player 6. 使用方法:myObject.addProperty( prop, getFunc, setFunc ) 参数:prop 创建的属性名称 getFunc 此参数是一个函数对象,而此函数起调用获取属性值的功能 setFunc 此参数也是一个函数对象,而与getFunc的参数函数相对,此处的函数功能是设置属性的功能。假若此参数设置为null,那么属性将被设置为只读。 返回值: 返回一个布尔值,如果一个属性被创建则返回True,反之则为False。 说明: 方法:创建一个获得/设置的属性。当Flash读取获得/设置属性,它将调用相应的获取函数并且将返回值传递为一个属性值,而当Flash在写一个获得/设置属值的时候,它将调用相应的设置函数,并且将它的新值作为一个参数来应用。如果一个被命名的属性已经存在,那么新的属性将覆盖原来旧的属性。 获取函数是一个无参数的函数,它所返回的值可以是任何的类型,它返回的值将作为属性的当前值来对待。 设置函数只附带了一个参数,而次参数是将作为新的属性值的。举个实例来说明,如果一个属性值x已经被x=1所声明,那么设置函数将认识此参数并将它作为一个数字类型对待,而设置函数返回的值将被忽略。 你能增加一个获取/设置属性到原型对象中。如果你添加了一个获取/设置属性到一个原型对象,那么场景中所有继承于该原型对象的对象将继承这个获取/设置的属性。因而,这就造就了一种可能,相信我们能够添加获取/设置属到到一个特定的区域中,即该原型函数,而它将会传播于场景中该实化的所有的类(就像添加事件到该原型对象一样)。如果一个获取/设置函数中一个继承的原型对象中调用获取/设置属性,那么参数传递给获取/设置函数的将是最先的对象参数,而不是继承的原型对象的。如果调用错误,addProperty对象将会导致一个错误。 setInterval 适用版本: Flash Player 6. 使用方法: setInterval( function,interval[,arg1, arg2, ...,argn] ) setInterval(object, methodName,interval[,arg1,arg2, ..., argn] ) 参数: function 命名或指向一个匿名函数的函数 object 来源于Object对象的对象 methodName 调用对象参数的事件名称 interval 调用函数或事件名称的参数之间相隔的毫秒数。 arg1, arg2, ..., argn 可选参数用以传递函数或事件的参数。 返回值: 一个时间间隔标识标,你能通过clearInterval命令用以清除该时间间隔。 说明: 命令: 调用一个函数或事件或对象,当影片运行时定时的触发。你能运用时间间隔函数从数据库中来保存该变量或是更新时间显示。 如果interval小于影片帧的播放率(如:10帧每秒(fps)等于100毫秒),那么interval函数就很有可能将interval关闭。你必须用updateAfterEvent函数确定该屏幕播放有足够充分时间。如果interval大于影片帧的播放率,那么interval函数只是在每个帧的前面影片部分调用以使得每次屏幕刷新之时保持最小的影响。 上述第一种setInterval函数的语法示例在Action面板中是以正常模式为默认值的,而第二种语法示例,你必须运用专家Action面板进行操作。 clearInterval 适用版本: Flash Player 6. 使用方法: clearInterval( intervalID ) 参数: intervalID 通过setInterval函数返回的一个标识标。 返回值:无 说明: 清除一个setInterval函数调用。 Key.addListener 适用版本:Flash Player 6. 使用方法:Key.addListener (newListener) 参数:newListener 当按下释放键盘控制后返回的一个对象事件上。 返回值:无 说明: 事件:注册一个对象用以接受键盘按下释放后的反应。当一个键盘按钮按下或是释放,不管是否有输入焦点,所有用addListener注册过的onKeyDown事件或是onKeyUp事件都将会被触发。多个对象也能监听键盘控制。如果监听者newListener早被注册过,那么将不会产生任何反映。 instanceof 应用版本:Flash Player 6. 使用方法:object instanceof class 参数:object 一个ActionScript对象 class ActionScript构造器函数类型,如String或是Date等类型。 返回值: 如果一个对象是指定的某种场景类,instanceof返回值为true,否则返回值为false。 说明: 操作:确定一个对象是否属于一种特殊的类,测试该对象为某种类型。 Instanceof操作不能将原始类型转化为封装类型,例如,下面的代码将返回true值: new String("Hello") instanceof String 而下面的代码将返回false值: "Hello" instanceof String 现在我们再对上述的这些指令作以简单综述: #initclip与#endinitclip是一对成对出现的指令,主要功能是在影片关键帧等内容未曾载入调用前对组件进行一定的初始化定义描述及操作; Object.addProperty是添加一个对象的属性,这有便于我们为用户组件创建一些属于自己的对象属性。 SetInterval与clearInterval基本也是成对出现的指令,如果对于这两个指令在刚开始阶段比较难以理解,或许大家可以把它们与VB或是Delphi中的timer控件的作用作以类比,其它说到底,它们起到了一个“定时触发”的时间控制作用而已。 addListener对象监听的指令,我们不仅可以监听键盘对象,还可以监听鼠标、场景、文本框等等对象的内容,由此我们在用户组件的创作过程中此指令就可以大大改善用户体验,增加组件与用户之间的沟通。 Instanceof判断一个对象是否属于某一种特定的类型。 2 构建自己第一个用户组件 相信各位对前面利用“功能函数”创建的一个MovieClip的提示信息实例仍记忆犹新,而到了现在我们对组件的编程基本原理已经有了一定的认识的基础上,那么对于类似的问题,我们如用FlashMX组件的方式又该作以如何思考呢?那就请诸位跟随我们再次进行一次提炼精华的操作过程吧。 类似于我们已经作以详细介绍的FlashMX内置组件及扩展使用一般,我们欲求此次制作的组件也能从Library中直接拖放至场景中,并且要求该组件能够自动粘附到相应的场景对象上,如果场景对象是MovieClip,那么我们可以通过Parameters面板进行样式选择,并通过输入相应的提示信息以后进行影片测试时便可达到我们欲求的理想效果。 从上述的制作要求中我们大概归纳了几点精华: 其一,具有组件的外观样式; 其二,粘附场景对象,并判断是否为MovieClip类型的场景对象内容; 其三,样式的选择,可以按照所需选择指定的不同的样式,从而让提示信息在不同的情况要求下显示不同的样式外观; 其四,提示信息显示,当然,这些提示信息的样式得根据第三部分内容的更改而改变。 整理完毕上述内容,我们就可以着手开始落实我们第一个简单的自定义用户组件ToolTip了。 如同制作Smart Clip一般,我们在第一步定义了一个MovieClip(如图64所示),当然还会为它添置一些参数以备后用(如图65所示)。