Flash右键功能
- 12月 29th, 2008
-
很兴奋啊~现在Js部分是实现了,期待哪个牛人再把As部分封装….瓦咔咔
Example:http://www.uza.lt/rightclick/
很兴奋啊~现在Js部分是实现了,期待哪个牛人再把As部分封装….瓦咔咔
Example:http://www.uza.lt/rightclick/
貌似最近事很多,Flash CS4 出来这么长时间了,还只是看了一点点新特性,下面这些是新特性的官方文档,虽然Flash Cs4的文档里也有,但是需要找…和我一样懒的同学们可以直接看下面这几个链接就好。
绘图 API 高级用法
使用反向运动
在三维 (3D) 环境中工作
使用 Pixel Bender 着色器
处理数组 (Vector)
1.搜索引擎的抓取,目前比较靠谱的是通过向自己的Flash里注入一个由所有引擎提供的Class来实现,Google已经为分析提供了类似的Class。
2.浏览器兼容问题,至少需要可以正常的前进,后退及收藏,SWFAddress 解决了前进后退及收藏的问题,但是,需要在Flash内部做大量的配合SWFAddress的处理,Flash IDE下需要制定桢,Flex下需要指定states,这还是很繁琐的。
3.更好的自动更新机制,最好做到 ,只要有网络,就尝试着去检测当前FlashPlayer版本和最高版本,然后提示用户去不去升级。而不是像现在这样,需要自己用Js和Flash去帮Adobe兼容这个事情。
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Matrix;
import flash.net.URLRequest;
import flash.text.TextField;
public class Example00 extends Sprite
{
private var load:Loader;
public function Example00()
{
super();
load = new Loader()
var req:URLRequest = new URLRequest("http://i3.sinaimg.cn/home/deco/2008/0325/sinahome_Logo.gif")
load.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoad)
load.load(req);
addChild(load);
}
public function onLoad(e:Event):void{
var tf:TextField = new TextField();
tf.text = "Flash复制对象的Bitmap";
addChild(tf);
var bounds:Object = this.getBounds ( this );
var mat:Matrix = new Matrix();
mat.translate ( -bounds.x, -bounds.y );
var buffer:BitmapData = new BitmapData ( this.width+1, this.height+1, true, 0 );
buffer.draw ( this, mat );
var newBuffer:Bitmap = new Bitmap(buffer)
addChild(newBuffer)
newBuffer.x = 100
newBuffer.y = 200
}
}
}
其实就是一个Tween的应用…不过好应用比好技术要更实际,何况技术也很好嘛~
http://blog.greensock.com/liquidstage/
虽说是E文,不过没几行字…
1.如果不能保证一定会有JavaScript的回调函数,在ExternalInterface.call的时候,一定要Try,不然某些浏览器(不是FP)将会使Flash。
2.交互时用一个Object作为参数的容器进行传入传出可以对Js人员很方便,他们封装起来很爽,但是要注意:请Js人员严格传入Object,并且不要尝试在As里面兼容传入Object和String,Number等各种情况。
3.虽然Adobe说FP是无视浏览器的,但是Js不能无视浏览器,要写2套代码,所以有时候,我们的思路也要扩展为写2套代码来兼容浏览器问题。
Microphone.getMicrophone(),在某些情况下,即使没有麦克风,也会返回name为声卡的对象…
如果一定要判定是否有麦克风,可以使用返回对象的activityLevel属性来判定。
这个很强大,但是只能用于flexproject,因为UI等很多东西直接用了mx包。不过还是好强大,基本属于运行时就可以Debug的程度…
新出的…Flex的
也很强大,也是只能用于flex,唉,想要个纯As的还真难。
新出的…Flex的…
没前面那些说的那么强大,至少,它可以应用于任何Project…推荐一下
在Firebug中输出,很不错。推荐。
直接trace()到火狐中…不过需要flashlog.txt指定
http://blog.csdn.net/xbstu2006/archive/2007/12/12/1930633.aspx
这个貌似就是国人做的,必须要支持一下
也就是很熟悉的混合模式,BlendMode类枚举了所有的混合模式,如下
BlendMode.ADD ("add"):通常用于创建两个图像之间的动画变亮模糊效果。BlendMode.ALPHA ("alpha"):通常用于在背景上应用前景的透明度。BlendMode.DARKEN ("darken"):通常用于重叠类型。BlendMode.DIFFERENCE ("difference"):通常用于创建更多变动的颜色。BlendMode.ERASE ("erase"):通常用于使用前景 Alpha 剪掉(擦除)背景的一部分。BlendMode.HARDLIGHT ("hardlight"):通常用于创建阴影效果。BlendMode.INVERT ("invert"):用于反转背景。BlendMode.LAYER ("layer"):用于强制为特定显示对象的预构成创建临时缓冲区。BlendMode.LIGHTEN ("lighten"):通常用于重叠类型。BlendMode.MULTIPLY ("multiply"):通常用于创建阴影和深度效果。BlendMode.NORMAL ("normal"):用于指定混合图像的像素值覆盖基本图像的像素值。BlendMode.OVERLAY ("overlay"):通常用于创建阴影效果。BlendMode.SCREEN ("screen"):通常用于创建亮点和镜头眩光。BlendMode.SUBTRACT ("subtract"):通常用于创建两个图像之间的动画变暗模糊效果。BlendMode.LAYER只是强制缓冲图像,不进行实际混合,有很多实际用途,例如,使TextField的Alpha起作用…原来describeType是这么用的…
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function init():void{
var description : XML = describeType( this );
var accessors : XMLList = description.accessor.( @access == "readwrite" ).@name;
var str:String;
for ( var i : uint = 0; i < accessors.length(); i++ )
{
var name : String = accessors[ i ];
str += (name+”\n”);
}
Alert.show(str);
}
]]>
</mx:Script>
</mx:Application>