推荐阅读
(6-9):制作网页翻转按钮
大家经常在一些网页中看到一种会随着鼠标的接触而变色的按钮,参见范例网页。这称之为鼠标翻转效果,这是根据英文rollover翻译而来的,其实不是很符合中文的语境。其原理是利用两张图片,平时显示一幅,当鼠标接触后换成另外一幅图片。如下图。这样看起来好像是鼠标接触的时候按钮变亮了。现在我们来动手制作,首先在Photoshop中将它们制作成图片,然后再做成网页。首先新建一个400×300的白底图像,新建一层,利用形状工具椭圆〖U/SHIFTU〗,在公共栏选择第3种绘图方式(填充像素),调出信息调板〖F8〗观看数值,用任意颜色在新建层中间位置画一个直径40左右的正圆(按住SHIFT保持正圆)。如下左图。0614【窗口>样式】调出样式调板,点击右上角圆三角按钮,选择“替换样式”,在出来的样式列表目录中选择“Web翻转样式”,确认目前选择的是新建层,然后使用“选中状态的蓝色胶体按钮”样式。如下中图红色箭头处。大家也可以自己选择其他颜色的。0615将新建层与背景层合并,然后【图像>修整】,如下右图所示。确定操作后图像将被裁剪为和所画的圆同等大小。这个命令的作用是根据左上角第一个像素处,或右下角最后一个像素处的颜色,在我们这幅图像中这两个地方都是白色。然后就将画面中连续的白色部分裁剪掉。这就好像现实中打印图像之后将纸张的边缘裁剪掉一样。接着将背景图层复制一层,对复制出来的图层使用曲线工具,合并高光和暗调区域(高光点229,255;暗调点60,0),形成加亮按钮的效果。如下左图。完成后我们得到两个图层,分别是暗色按钮的背景层,和亮色按钮的背景复制层。如果以上步骤无法完成,点此下载范例文件0616使用【文件>在ImageReady中编辑】〖CTRLSHIFTM〗,或点击工具栏最下方按钮,将会跳转到ImageReady中,这是Photoshop附带的一个软件,用来制作动画和网页。我们找到Web内容和图层两个调板,如下右图。后面的操作就是由这两个调板配合完成。 在完成以上5个步骤后,我们就可以开始制作鼠标翻转效果了。开始之前我们先简要介绍一下制作的原理。范例网页大家也看过,是随着鼠标的接触而发生的。这里涉及一种概念,叫事件和方法。我们的日常生活就是由许多事件和方法组成的,比如口渴是事件,喝水就是解决这个事件的方法。肚子饿是事件,吃东西就是方法。想学习是事件,看《大师之路》就是方法等等。这其实就是一种编程的思想,和人一样,电脑也是由事件和方法组成的一套逻辑系统。所以下面我们也要按照这种思路,去创建一个事件和解决方法。这个事件就是鼠标接触事件。平时鼠标不接触,我们只显示暗色按钮层(背景层)。而在鼠标接触的事件发生后,显示亮色按钮层(背景副本层)。
AutoCAD 2007 入门教程-CAD图形的输入输出
AutoCAD 2007 提供了图形输入与输出接口。不仅可以将其他应用程序中处理好的数据 传送给 AutoCAD ,以显示其图形,还可以将在 AutoCAD 中绘制好的图形打印出来,或者 把它们的信息传送给其他应用程序。此外,为适应互联网络的快速发展,使用户能够快速有效地共享设计信息, AutoCAD 2007 强化了其 Internet 功能,使其与互联网相关的操作更加方便、高效,可以 创建 Web 格式的文件 (DWF) ,以及发布 AutoCAD 图形文件到 Web 页。 AutoCAD 2007 除了可以打开和保存 DWG 格式的图形文件外,还可以导入或导出其他格式的图形。 导入图形 在 AutoCAD 2007 的 “ 插入点 ” 工具栏中,单击 “ 输入 ” 按钮将打开 “ 输入文件 ” 对话框。在其中的 “ 文件类型 ” 下拉列表框中可以看到,系统允许输入 “ 图元文件 ” 、 ACIS 及 3D Studio 图形格式的 文件。 在 AutoCAD 2007 的菜单命令中没有 “ 输入 ” 命令,但是可以使用 “ 插入 ” | 3D Studio 命令、 “ 插入 ” | “ ACIS 文件 ” 命令及 “ 插入 ” | “ Windows 图元文件 ” 命令,分别输入上述 3 种格式的图形文件。 插入 OLE 对象 选择 “ 插入 ” | “ OLE 对象 ” 命令,打开 “ 插入对象 ” 对话框,可以插入对象链接或者嵌入对象。 输出图形 选择 “ 文件 ” | “ 输出 ” 命令,打开 “ 输出数据 ” 对话框。可以在 “ 保存于 ” 下拉列表框中设置文件输出的路径,在 “ 文件 ” 文本框中输入文件名称,在 “ 文件类型 ” 下拉列表框中选择文件的输出类 型,如图元文件、 ACIS 、平板印刷、封装 PS 、 DXX 提取、位图、 3D Studio 及块等。
自己动手制作活动菜单条
用QQ聊过天的朋友都对它的自动隐藏窗口功能爱不释手,它可以使窗口显得清爽整洁而且富有动感,笔者的几个朋友都想在自己的网页中加入类似的东东,经过共同摸索发现用Dreamweaer 就可以实现这种效果,下面我们通过一个活动菜单条的制作来看看吧。 第1步:制作菜单外貌 在Dreamweaer 中新建一个文件,绘制一个层,在该层中插入一个表格(如图1),对该表格进行修饰,然后加入菜单项并建立各项的超链接,为了去掉超链接的下划线,可以编辑超链接的Css样式,在CSS样式面板中通过CSS选择器将“Link”和“Hover”的“Decoration(装饰)”均设置为“None(无)”,将“Hover”的“Color(颜色)”设置为红色,最后将设置好的样式应用到各个菜单条中(可按“F12”键预览效果)。 第2步:设计菜单的动态效果 1、选定层面,当鼠标变成“十”字形时按住左键将层面拖动到页面右上角(使整个菜单条完全露出但上边缘正好靠拢页面上边界),在窗口菜单中打开时间线面板,选定层面将其拖动到时间线上,Dreamweaer会自动产生一个长度为15帧的动画对象,拖动该动画对象的最后一个关键帧到第30帧,将其长度设置为30帧。然后在第15帧处单击右键,在弹出的快捷菜单中选择“添加关键帧”选项插入一个关键帧,并将层面拖动到适当位置(如图2)。
数码摄影10个技巧
以前一定听过这种话:数码相机(以下用DC)无所不能。你只要按下按钮,一张伟大的照片就会变魔术般展现在你面前。相机越好,照出来的照片越好。果真如此吗?见鬼,当然不是了! 事实是你可以用一个简单的消费级傻瓜DC拍出一张伟大的照片,也可以用最贵的DC拍出一张垃圾照片。漂亮的照片不是相机搞出来的,而是摄影师搞出来的。只要有一些拍摄方面的知识,再加上不断改进的愿望,你可以用你的小DC拍出能登上时代周刊的大照片。 为了帮助你在成为伟大摄影师的道路上快步前行,这里送给你10个技巧,它们会让你即使不花大价钱买昂贵的设备也能像专业人士一样拍照。 1.暖化你的照片 你注意过有些时候你拍的照片有一种冷冷的感觉吗?如果答案是肯定的,那你并不是孤独呵呵。DC的默认白平衡设置是“自动(auto)”,虽然在大部分情况下都是适用的,但有时候却会让景物太“冷”了。 当你拍户外景物的时候,特别是当阳光充足时,试着把你的白平衡调到“多云(cloudy)”那一档。对,就是“多云”那一档,这个变化跟在你的镜头前加一个暖色滤镜的效果是一样的。它使得照片中红色和黄色的更加丰满,从而暖化了这张照片 图1a是在一个山区拍摄的,白平衡设置在“自动(auto)” 图1b 同一个场景,我把白平衡换成了“多云(cloudy)”,同时把一副Costa Del Mar太阳镜放在了镜头前(佳能PowerShot S200,程序模式program mode) 如果你不相信我,那就试试吧。在户外分别用自动白平衡和多云白平衡拍两组照片,然后在你的电脑上对比着看,我猜你一定会喜欢看上去暖洋洋的那一组的 2.用太阳镜做偏振镜
最新发布
Flash AS3教程:类的分包处理
学习Flash AS3自己整理的写的一些类,对学习Flash非常有用! 分包情况: base包:基础包,用于存放初级应用类 bat包:应用包,用于存放高级应用类 com包:系统化包,用于存放系统化的高级应用模块类 exe包:框架包,用于存放框架方面的类 item包:项目包,用于项目上靠经验积累下的类 module包:组件包,用于存放组件的类 这段时间,我个人的情绪非常低落,为了摆脱这段时间的消极状态
Flash游戏开发:BitmapData的使用
作为Flash游戏开发者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题,请诸位高手也帮忙看看! ******************************************************************** 1、copyPixels,5000次,1000*590,没有lock,后addChild cost: 10828 cost: 10844 cost: 10625 2、copyPixels,5000次,1000*590,没有lock,先addChild cost: 10828 cost: 10844 cost: 10625
飘雪Flash动画简单制作
很多女生都喜欢好看的Flash动画,那么想不想自己制作一个呢?今天为大家简单讲解如何制作常见的飘雪动画。 swf大小为550*400; 在flash里画一片雪,设为moveClip,起名snow,删除场景是的雪片,在库中链接,选“为第一帧导出”“为actionscript导出”起名snow,然后在第一帧写入如下代码即可:var t:Timer;t = new Timer(1000,10);t.addEventListener(TimerEvent.TIMER,xue);t.start();function xue(e:TimerEvent):void { var i:int; for (i=0; i<=10; i++) { var tt:snow=new snow(); addChild(tt); var sj:uint=Math.random()*5>>0; tt.x=Math.random()*550>>0; tt.y=Math.random()*400>>0; tt.width=sj; tt.height=sj; //tt.alpha=10; tt.addEventListener(Event.ENTER_FRAME,moveY); }}function moveY(e:Event) { var speed:uint=e.target.width+Math.random()*1>>0; e.target.y+=speed; if (e.target.y>400) { e.target.y=0; }} 发布后效果自己感觉不错
Flash air制作透明雪花特效
本文示例源代码或素材下载 打开FLASH CS3,新建一个FLASH AIR文档,设置窗口模式为透明(设置方法在上篇文章中我已经说过了),创建一个雪花影片剪辑,链接为snow,在场景中创建一个按钮,实例名称为close_btn,在文档类中填写main,保存此文件为snow.fla。新建一个AS文件,放在同目录下,保存为main.as,在其中写入以下代码:package {import flash.display.MovieClip;import flash.display.SimpleButton;import flash.display.StageDisplayState;import flash.display.NativeWindow;import flash.events.Event;import flash.events.MouseEvent;public class main extends MovieClip {private var window:NativeWindow=stage.nativeWindow;private var mysnow:snow;public function main() {stage.displayState=StageDisplayState.FULL_SCREEN;addEventListener(Event.ENTER_FRAME,xh);close_btn.addEventListener(MouseEvent.CLICK,closefunc);}private function xh(event:Event):void {mysnow=new snow ;addChild(mysnow);}private function closefunc(event:MouseEvent):void {window.close();}}} 我们还要为snow影片剪辑写一个包,新建一个AS文件,保存在同目录下,名为snow.as,写入以下代码:package {import flash.display.MovieClip;import flash.events.Event;public class snow extends MovieClip {private var speedy:Number=Math.random() * 6+2;public function snow() {var lastwidth:Number=this.width;this.width=Math.random() * 5;this.height*= this.width / lastwidth;this.y=-5;this.x=Math.random() * 545;addEventListener(Event.ENTER_FRAME,xh);}private function xh(event:Event):void {this.y+= speedy;if (this.y > 400) {removethis();}}private function removethis():void {removeEventListener(Event.ENTER_FRAME,xh);parent.removeChild(this);}}} Ctrl+Enter测试就可以看到效果了。
Flash AS3教程:ClassLoader类
主要用途: 1、在用flash做项目的时候,把一些元件,通过设置链接类,然后使用这个类,通过getClass方法即可把这个素材拿下来 图1(详见例1) 2、将许多许多的类分库到不同的swf中,然后通过调用swf,达到调用类库的功能,然后通过getClass来获取类(详见例2) index.base.net.ClassLoader类讲解: 加载swf文件,并且通过调用getClass获取类,也可以获取命名空间或者函数的定义 构造函数 public function ClassLoader(obj:Object = null,lc:LoaderContext = null) 参数1可以是字符串,可以是ByteArray,如果为前者则采用load方法,后者采用loadBytes方法
Flash AS3教程:ByteLoader类
前面介绍了ClassLoader类的技巧,请观看更多关于Flash教程的内容。 该类的主要功能是把swf,jpg,png,gif等文件以字节的形式加载进来 以便于使用Loader.loadBytes方法,重复加载使用素材 如果图片格式为jpg,并且是渐进式格式jpeg,那么该类还可以帮助你边加载边显示 index.base.net.byteLoader类讲解: 基本功能按字节加载图片,swf等 构造函数 public function ByteLoader(url:String = "") 如果传入了参数url,则立即执行加载! load 加载方法
Flash as3嵌入中文字体的方法
因为最近要做一个项目,涉及到要输入文本,Flash的输入文本默认下是只能显示设备字体。连系统内的字体都不能设置,必须要嵌入才能输入。 as2的时代,可以用加载字体库的方式来解决,Adobe官方的解释太烦琐了,其实总结起来就是一个替换字体的过程,把外部库的自定义字体替换当前的输入字体。 例如如下: 如果是as2的话,新建一个Fla文件share.fla,然后在库里新建一个字体文件,然后设置他的标识为MyFont,随便选择系统内的一种字体,然后选择linkage里的导出as,导出runtime sharing,导出第一帧,然后在url处填写share.swf,然后编译成share.swf 然后新建主文件main.fla,同样在库里新建一个字体文件,然后设置他的url为share.swf,这样他就共享了share.swf里的字体文件,可以在场景里放一个textinput文件来做测试 这样嵌入字体的工作就完成了,as3文件不同的地方在于没有标识这个东西了,那我们在aa.swf(就是上面的share.swf)里设置Classname为自定义的字体名字zhr_font,然后在Main文件里也设置成zhr_font的ClassName
AS3的System类解决歌词中乱码问题
在做FLASH程序时常常会遇到乱码问题,比如在做一个读取同步歌词文件的程序时载入的全是乱码,这是一个让人很头疼的问题,有的人会说,那怕什么?把那个歌词的编码改成UTF-8不就行了吗?但是网站上的下载下来的同步歌词文件大都是ANSI编码的。我们要用的是直接就可以拿来用的。 前面一篇教程讲述的是Flash中解决中文字体的问题。 有很多人写了类来解决这个问题,但写出来的类都很复杂,根本不实用。 那么,难道就没有办法了吗? 当然有,并且这个办法还很简单,我在翻看FLASH CS3的帮助文档时一不小心发现了这个办法(嘿嘿,先自娱一下)。 AS3中有一个System类,只须一个简单的设置就行了。 请看示例:package { import flash.system.*; import flash.display.Sprite; import flash.net.URLRequest; import flash.net.URLLoader; import flash.events.IOErrorEvent; import flash.events.Event; import fl.controls.TextArea; import flash.text.TextFormat; public class sys extends Sprite { private var myxml:XML; private var mytxt:TextArea=new TextArea ; private var req:URLRequest=new URLRequest("test.txt"); private var ul:URLLoader; private var tf:TextFormat=new TextFormat ; public function sys() { tf.size=14; tf.color=0xFF0000; mytxt.setSize(550,400); addChild(mytxt); System.useCodePage=true;//解决中文乱码 ul=new URLLoader(req); ul.addEventListener(IOErrorEvent.IO_ERROR,ioerror); ul.addEventListener(Event.COMPLETE,loaded); } private function loaded(event:Event) { mytxt.setStyle("textFormat",tf); myxml=XML(ul.data); mytxt.text=myxml; System.setClipboard(mytxt.text);//设置剪贴板文本 } private function ioerror(event:IOErrorEvent) { mytxt.text="无相关文件"; } }} 这是我写的一个包,具体怎么用,我想大家都会了,文中蓝色字就是解决乱码的了。 在FLASH中System.useCodePage是布尔类型的且默认值为false,用时只要把其值设为true就行了。
Flash AS3用于读取LRC同步歌词的类
今天心情不错,用FLASH写了一个用于读取LRC同步歌词的类,只要25行代码,完全用是用FLASH的字符串操作来分析标签的。 下面就是这个类:package LRC{ public class readlrc { public function readlrcastime(mp3playtime:Number,gc:String):String { var qsd:int;//起始点 var fhz:String; for (var j:int=0; j < gc.length; j++) { if (gc.charCodeAt(j) == 58) { if (int(gc.slice(j - 2,j)) * 60 + int(gc.slice(j + 1,j + 3)) == mp3playtime) { var i:int=0; do { i++; if (gc.charCodeAt(j + i) == 93) { qsd=j + i; } if (gc.charCodeAt(j + i) == 13) { fhz=gc.slice(qsd + 1,j + i); } } while (gc.charCodeAt(j + i) != 13&&j+i } } } return fhz; } }} 将此文件保存为readlrc.as。 注意:一定要把此AS文件放入一个名为LRC的文件夹中,才可以使用。 下面就用一个小示例来说明如何用这个类,新建一个AS文件,写入以下代码:package { import flash.display.MovieClip; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundChannel; import flash.system.System; import flash.text.TextField; import LRC.readlrc; public class mp3 extends MovieClip { private var lrcreq:URLRequest=new URLRequest("日不落.lrc"); private var mp3url:URLRequest=new URLRequest("日不落.mp3"); private var mymp3:Sound=new Sound(); private var channel:SoundChannel=new SoundChannel(); private var lrcurl:URLLoader=new URLLoader(); private var tbgc:String; private var mylrc:readlrc=new readlrc(); System.useCodePage=true; public function mp3() { mymp3.load(mp3url); channel=mymp3.play(); lrcurl.load(lrcreq); lrcurl.addEventListener(Event.COMPLETE,loaded); } private function enterframe(event:Event) { try { gc_txt.text=mylrc.readlrcastime(int(channel.position/1000),tbgc); } catch (error:Error) { // } } private function loaded(event:Event) { tbgc=String(event.target.data); addEventListener(Event.ENTER_FRAME,enterframe); } }} 保存此文件为mp3.as。
优化Flash Actionscript代码的三种方法
第一章 AS3的一些优化计算方法 1.用乘法来代替除法(当除数可转化为有限数的时候)。比如var n:Number = value * 0.5;要比var n:Number = value / 2;快。但差别并不是很大。只有在需要大量计算情况下,比如3D引擎中差别才比较明显。 2.用位运算代替除2或乘2。比如10>>1要比10*2快,而10<<1要比10*2快。从测试来看位运算几乎比乘除快一倍,但是一般情况下,我们不能选择位运算,比如我们就不能用13>>1来代替13/2,尽管前者比后者运算速度更快,但2者的运算结果却不一样。所以还是要看具体情况。 3.用unit()或int()代替取整运算Math.floor()和Math.ceil()。比如var test:uint = uint(1.5);要比var test:Number = Math.floor(1.5);快;而var test:uint = uint(1.5)+1;要比var test:Number = Math.ceil(1.5);也快。如果是Math.floor(),还可以用位运算(>>0)来代替。比如var test:uint =1.5>>0,比unit()或int()更快。 4.用乘-1来代替Math.abs()方法。比如var nn:Number = -23;var test:Number= nn < 0 ? nn * -1 : nn;要比var nn:Number = -23;var test:Number = Math.abs(nn);快。 当然还有更多的优化计算的方法。一般来说,低级运算要比高级运算速度;内部方法比调用其他方法速度快。另外要注意的是,这些方法有的时候可能并一定适用。 第二章 Actionscript 优化指南 来源 gotoAndStop.it 原著 Marco Lapi,alias Lapo, aw译 在这篇文章中,我们将讨论多种优化 Actionscript 代码的方法.