Flash Builder4序列号过期解决方法及中文版美化补丁
四 1, 2010 FLASH/FLEX开发
今天是4月1日,正是西方的愚人节。adobe大大好好的愚了一把广大使用D版Flash Builder4序列号的兄弟。一大早打开Flash Builder,发现不能用了。重新填入序列号,重新打开还是不能用。
经过实验发现,只需要把adobe的在线验证地址屏蔽掉,再用算号器重算一个序列号填入就行了。
adobe的在线验证地址屏蔽方法:在C:\WINDOWS\system32\drivers\etc\hosts中添加一行:
127.0.0.1 activate.adobe.com
即可。
Flash Builder 4正式版算号器下载地址:http://www.5uflash.com/Flex-AIR/Flexziliao/5678.html
如果你装的是中文版,是不是发现左上角的[源代码][设计]按钮比较丑呢?再看一下,我的这个是不是比你的好看些呢?
实际上只需要把安装目录下:plugins\com.adobe.flexbuilder.editorcore.nl1_4.0.0.272416\nl\zh_CN\icons\editors中的那些丑丑的图片替换掉即可。
修改后的图片下载:[优化过的图片]
一些有用的flex快捷键
一 30, 2010 FLASH/FLEX开发
’shift’ + ‘tab’:左移代码;
‘alt’ + ‘/’:代码提示; 或者自己在key里找到 content assist自己设置
‘ctrl’+'o’:快速查找以及指向变量或函数或者mxml组件的id;
‘ctrl’+'d’:删除一行代码; [用它你会上瘾的]
‘ctrl’ + ‘m’:在最大化与还原之间切换获得焦点的窗口; 很常用的啦, 非常方便, 另外双击窗口也可以实现同样的
‘ctrl’ +’e’:快速查找以及指向打开的文件; [在打开的文件很多时尤其实用]
‘tab’:右移代码; [也很常用,非常方便]
‘ctrl’ + ‘~’:代码和设计模式切换;
‘ctrl’ + ‘/’:注釋一行ActionScript代碼[很常用]
‘ctrl’ + ’shift’ + ‘c’:添加或/* */
‘ctrl’ + ’shift’ + ‘d’:添加
‘ctrl’ + 鼠標左鍵: 快速指向所點擊類文件
Zend Framework 1.10.0rc1 Released
一 27, 2010 FLASH/FLEX开发, 业界新闻
从Zend的官方网站看到,1月22日,Zend Framework Relase到了1.10版本.
官方的新闻地址:http://devzone.zend.com/article/11694-Zend-Framework-1.10.0rc1-Released
官方的下载地址:http://framework.zend.com/download/latest
额~~但是看了一下Release note,好像zend amf部分没有作任何更新,基本上可以无视了.
as3动态文本的透明问题
一 25, 2010 FLASH/FLEX开发
一直以为要让动态文本有半透明的效果,就一定要把字体嵌入进去。今天忍无可忍,到网上翻了一下。才知道我严重out了。
实际上只要把blendMode属性(也就是混合模式)设为BlendMode.LAYER就可以了,也就是强制为该显示对象创建一个透明度组。
关于blendMode的混合模式,还有一些别的用法。具体可以参照这个类的帮助。
http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/flash/display/BlendMode.html
Tags: BlendMode
FLEX中表单验证提示的标记字号设置
一 21, 2010 FLASH/FLEX开发
如图所示,上面的这个提示,9号字的中文很难看,昨天晚上我郁闷了很久,经过论坛中兄弟的提示,要定义一下.errorTip式样.
.errorTip { fontSize: 12; }
上面的代码,即是表示定义提示标签的字号定义为12号字.
然后,我查了下flex的帮助,才了解到,ErrorTip是把式样定义为errorTip的ToolTip的实例.其默认的式样定义为.
.errorTip { color: #FFFFFF; fontSize: 9; fontWeight: "bold"; shadowColor: #000000; borderColor: #CE2929; borderStyle: "errorTipRight"; paddingBottom: 4; paddingLeft: 4; paddingRight: 4; paddingTop: 4; }
这个样式定义在framework.swc文件中defaults.css中,如果想对其式样进行更改,只需要重定义一下.errorTip的式样即可.
Imageprocessing Library:一个图象滤镜库
一 19, 2010 FLASH/FLEX开发, 资源下载
Imageprocessing Library是一个基于as3的简单高效的图像滤镜库。里面包含了五十多种对图片的处理方法。(官方介绍,没有验证)
我是在deface的官方示例中发现这个包的,简单看了一下,发现功能强大,但不是开源的。
官方博客地址:http://blog.joa-ebert.com/imageprocessing-library/
最新版本的swc地址:http://je2050.de/files/source/as3/ImageProcessing.zip
文档地址:http://je2050.de/imageprocessing/
几个示例:
仿PS的曲线工具:http://je2050.de/showroom.php?file=curves
结合pv3d做的一个示例:http://je2050.de/showroom.php?file=roto&f=1
还有一个扩展示例,说不出来的酷:http://www.sephiroth.it/test/flex/2/mixer_papervision/Main.html
两个翻转BitmapData的函数
一 15, 2010 FLASH/FLEX开发
这几天一直在烦恼图片的旋转啦,切割啦,对座标啦,等等等……
贴几个函数.
//向右旋转90度 public function scaleRight(bmp:BitmapData):BitmapData{ var m:Matrix = new Matrix(); m.rotate(Math.PI/2); m.translate(bmp.height,0); var bd:BitmapData = new BitmapData(bmp.height, bmp.width,false); bd.draw(bmp,m); return bd; } //向左旋转90度 public function scaleLeft(bmp:BitmapData):BitmapData{ var m:Matrix = new Matrix(); m.rotate(-Math.PI/2); m.translate(0,bmp.width); var bd:BitmapData = new BitmapData(bmp.height, bmp.width,false); bd.draw(bmp,m); return bd; }
ZamfBrowser:不错的ZendAMF调试工具
一 13, 2010 FLASH/FLEX开发, 资源下载
事实证明,经常看看那些开源项目的网站,总是会好处的.我今天逛puremvc的网站就有了一个惊喜,发现了一个基于puremvc的开源东东叫:ZamfBrowser.用这个工具,可以方便的对ZendAMF的php端程序进行测试和调试.
官方网站:http://www.zamfbrowser.org/
项目的SVN地址:http://svn.riaforge.org/zamfbrowser/
从SVN当下来的代码有两个部分,air和php.
air部分的代码,需要在flex中建一个air项目,把puremvc的代码链进来,就可以进行编译了.可以release一个版本出来,自个安装一下.注意:要air运行环境哦.
php部分的代码里面有个示例代码的zip包,实际上用到的只是sourse目录中的ZendAmfServiceBrowser.php文件.
具体使用方法如下:
1)rowser拷到你的项目中.
2)修改你的gateway.php文件.添加如下代码
require_once( "browser/ZendAmfServiceBrowser.php" ); $server->setClass( "ZendAmfServiceBrowser" ); ZendAmfServiceBrowser::$ZEND_AMF_SERVER = $server;
下面就是启动你刚刚装好的的air程序,添加一个服务,第一个框中随便填个名称,第二个框中填gateway.php的地址,就OK了.
下面你就可以对你项目中各个类中的各个方法进行测试了,设定传入的参数,查看传回的结果.
爽吧?
具体的使用帮助,请看官网的:
http://www.zamfbrowser.org/documentation.html
Tags: puremvc, ZamfBrowser, zendamf
一个声音光谱效果的源码
一 7, 2010 FLASH/FLEX开发, 资源下载
偶然发现了这个效果,只有一个类,效果狂好.奉上源码
点击下面的[flash]开始欣赏.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Rectangle; import flash.media.Microphone; import flash.media.Sound; import flash.media.SoundMixer; import flash.utils.ByteArray; [SWF( backgroundColor='0', frameRate='35', height='400', width='400')] public class Main extends Sprite { private var mic: Microphone; private var sound: Sound; private var bytes: ByteArray; private var output: BitmapData; private var peaks: BitmapData; private var displace: Matrix; private var rect: Rectangle; private var gradient: Array; private var darken: ColorTransform; [Embed(source="song.mp3")] public var soundClass:Class; public function Main() { sound = new soundClass as Sound; stage.addEventListener(MouseEvent.CLICK,onStageClicked); bytes = new ByteArray(); output = new BitmapData( stage.stageWidth, stage.stageHeight, true, 0 ); peaks = new BitmapData( stage.stageWidth, stage.stageHeight, true, 0 ); displace = new Matrix(); displace.tx = 2; displace.ty = -1; darken = new ColorTransform( 1, 1, 1, 1, -2, -2, -2, 0 ); rect = new Rectangle( 0, 0, 1, 0 ); addChild( new Bitmap( output ) ); addChild( new Bitmap( peaks ) ); stage.addEventListener( Event.ENTER_FRAME, onEnterFrame ); graphics.beginFill( 0 ); graphics.drawRect( 0, 0, stage.stageWidth, stage.stageHeight ); graphics.endFill(); gradient = createRainbowGradientArray(); } private function onStageClicked( event:MouseEvent ): void { sound.play(); stage.removeEventListener(MouseEvent.CLICK,onStageClicked); } private function onEnterFrame( event: Event ): void { peaks.fillRect( peaks.rect, 0 ); SoundMixer.computeSpectrum( bytes, true, 0 ); var value: Number; var height: Number; var smooth: Number; for( var i: int = 0 ; i < 256 ; i++ ) { value = bytes.readFloat(); if( i == 0 ) smooth = value; else smooth += ( value - smooth ) / 8; height = 2 + smooth * 0xf0; rect.x = 8 + i; rect.y = 320 + ( i >> 2 ) - height; rect.height = height; peaks.setPixel32( rect.x, rect.y, 0xffffffff ); output.fillRect( rect, 0xff000000 | gradient[i] ); } output.draw( output, displace, darken, null, null, true ); } private function createRainbowGradientArray(): Array { var gradient: Array = new Array(); var shape: Shape = new Shape(); var bmp: BitmapData = new BitmapData( 256, 1, false, 0 ); var colors: Array = [ 0, 0xff0000, 0xffff00, 0x00ff00, 0x00ffff ]; var alphas: Array = [ 100, 100, 100, 100, 100 ]; var ratios: Array = [ 0, 16, 128, 192, 255 ]; var matrix: Matrix = new Matrix(); matrix.createGradientBox( 256, 1, 0, 0, 0 ); shape.graphics.beginGradientFill( 'linear', colors, alphas, ratios, matrix ); shape.graphics.drawRect( 0, 0, 256, 1 ); shape.graphics.endFill(); bmp.draw( shape ); for( var i: int = 0 ; i < 256 ; i++ ) { gradient[i] = bmp.getPixel( i, 0 ); } return gradient; } } } |

