[转]flash 随机数

Math.random();
范围为0~1

如 果想要0~100的话就是
Math.random()*100

随机出 [n,m]范围的随机数
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max – min + 1)) + min;
return randomNum;
}
for (var i = 0; i < 10; i++) {
var n:Number = randRange(1, 10)
trace(n);
}

js调用flash函数

js代码:
<input type="button" onClick="test()" value="test" />
<script language="JavaScript" type="text/javascript">
function test() {/*flash为加载flash的id*/
 window.document.flash.SetVariable("_root.TestVar","Hello,flash!");
}
</script>

as代码:
_root.addProperty("TestVar",func1,func2);
function func1(){
}
function func2(str1){
  txt.text+=str1;/*txt为一个舞台上的输入框*/
}

[转]flash图片缩放后产生锯齿的平滑处理

1
mc.forceSmoothing=true;

2
import mx.utils.Delegate;//
import flash.display.BitmapData;//

var mclListener=new Object();
mclListener.onLoadInit=Delegate.create(this,function(target_mc){
    var w=target_mc._width;
    var h=target_mc._height;
   
    var bmp=new BitmapData(w,h,true,0);
    bmp.draw(target_mc);               
    target_mc.attachBitmap(bmp,2,"auto",true);//设置平滑
   
    target_mc._width=128;
    target_mc._height=128/w*h;
});
var MCL=new MovieClipLoader();
MCL.addListener(mclListener);
MCL.loadClip("uploads/temp/"+_root.img_wear,download_mc2);

getURL或navigateToURL弹出窗口被IE拦截的解决方法

方法一:通过设置wmode可以解决问题:当wmode=’window’(默认值)的时候,IE就不再拦截了。

附:
Window是默认的,窗口模式,吃CPU不严重
Transparent透明无窗口模式
Opaque不透明无窗口模式

方法二:采用与js通信的方法

as3代码:

import flash.external.ExternalInterface;

btn.addEventListener("click",clickHandler);
function clickHandler(event:MouseEvent):void {
  ExternalInterface.call("openNow","标题","main.html");//openNow是HTML文件里的JS函数名,后面的是要传递的参数

}

//HTML页面里使用一个弹出层的js函数即可,此函数示例传递2个参数

特别注意:调用FLASH的object和embed标签一定要对应加上ID和NAME,且值要相同

[转]Flash中用ExternalInterface.call调用js获得返回值

ExternalInterface.call函数调用JS函数不能得到返回值、ExternalInterface的callback函数不能被JS正常调用以及FlashVar不能正常传给flash,这些情况基本都是发生在IE下。这其实算是IE中的一个bug,以上问题的解决办法都是一样的:

首先保证<object>和<embed>标签都是存在的,有时候大家会忘记<object>标签,那么在除了IE以外的浏览器就会出问题了,呵呵。

其次<object>和<embed>标签中allowScriptAccess最好都设置为always

然后最关键的一点就是<object>标签中必须设置id或者name属性,且<embed>标签中必须设置id或者name属性,两个属性的值要一样。例如<object id="f_ckIE">…<embed name="f_ckIE">….这样。可以简单的理解为<embed>标签是为IE服务的,而<object>标签是为IE以外的浏览器准备的,呵呵。(插一句embed标签是不符合W3C规范的,而object是标准的标签。)

最后要注意的是ExternalInterface.call接受的返回值只能是AS中存在的几种类型,也就是Object,Array,String,Number这些了,不能返回递归或者引用,否则只能得到null。

另外:FlashVar需要在<object>和<embed>标签中都要设置。ExternalInterface.call除了用户自定义标签以外只能调用javascript中几个系统全局函数,比如alert和confirm,而window.open这样的函数就不能call了。这里有个技巧,eval其实是可以调用的。
最主要的是:<object>加上一个id或是name就基本上解决问题。

[转]FLASH人脸识别算法

这个今天也是偶然在网上看到,不过对于人脸识别精确算法确实比较复杂涉及到人脸特征点提取和生物统计学原理的东西,不做太多讨论,只是谈谈今天我在网上看到的两个算法。第一个是被称为木刻算法,他主要用于提取人脸轮廓。该算法的前提是认为一般因为人体摄影的缘故人脸的周边会存在阴影,这样就为我们提取轮廓提供了一个区分的依据。

继续阅读“[转]FLASH人脸识别算法”

[转]FLASH 生成图片

as2生成jpg png bmp图片

方法一:BitmapExporter Class v2.2
简介:as2与php保存jpg png bmp图片。一个老外写好的AS2.0类,进行模拟jpg png bmp的算法压缩后把数据post给php页面程序来生成对应的图片数据。
特点:可以保持3种格式图片,是目前见到过的AS2生成图片最快的一种方式。并且可设置保存后图片可否在服务器保存。如果你熟悉AS2和PHP交互,那你可以自己扩展开发更多功能

下载地址: http://www.quasimondo.com/

相信请看之前文章:
http://hi.baidu.com/design9/blog/item/fb5d19db0fd1c062d0164ea3.html

as3.0目前已知的生产文件类库有PNG、JPG、GIF,还有PDF、ZIP。

Adobe官方的开源库,包括JPG和 PNG的编码生成器:http://code.google.com/p/as3corelib/
相关教程和实例:http://www.flexs.cn/post/103.html
配置教程:http://www.flexs.cn/post/AMF3_AS3_ASPNET.html
随便提下amf3只是编码格式,目前 OpenAMF (J2EE), Fluorine (.Net) and Flashticle (Python) ,这些分别对应不同的后台开发。具体情况请百度

GIF PlayerGIF EncoderZIP Encode,可以播放gif、生成gif文件流、生成zip文件流。

网站:bytearray.org

PDF类库。
网站:http://www.alivepdf.org/

生成SWF,目前php ming的可以生成。
请看:http://hi.baidu.com/design9/blog/item/7361b052a43a000a0cf3e3d7.html

以上方法都做测试,上手很方便。个人没有空间提供实例测试,需要实力可以自己到相关网站下载。或者HI联系

ImageEffect组件 马赛克,模糊,锐化,浮雕
图片处理效果,国内Kinglong 开发
http://www.klstudio.com/post/127.html

as3 本地保存图片

import JPGEncoder;
function save(defaultFileName:String = null):void {
    var _fileRef:FileReference=new FileReference();//用于保存文件
    var _encoder:JPGEncoder=new JPGEncoder(80);//用于编码位图
 
    var bitmapData:BitmapData=new BitmapData(80, 30, false, 0xFFCC00);
    bitmapData.draw(this);//得到位图
    var ba:ByteArray=_encoder.encode(bitmapData);//编码成JPG图片,质量为80
    _fileRef.save(ba, defaultFileName);//保存到磁盘,会出现个系统保存对话框。
    ba.clear();
}
save();