计算字符串表达式的函数(AS版)

先废话几句:AS中的浮点数计算误差也真是很有趣,例如:6.4-6.3=0.100000000000001,这是在Flash 8中运行的结果,附图一张:

evalString 函数介绍:
evalString(expression:String) : Number

expression 为一个算术表达式,该函数将计算此表达式的值,并返回计算结果。此表达式仅限于简单的+、-、×、÷以及带括号的运算,表达式中不得有其他符号,包括空格。表达式中的数字不仅限于一位整数,也可为多位整数,甚至是小数

参数
expression:String – 一个字符串表达式。

返回
Number – 一个数值。

示例

var infix:String = “(48-20*(6.2-5))/(18-15)”;
trace(evalString(infix)); //output 8

函数算法思想

算法思想和上一篇《把中缀表达式转化为后缀表达式》

gotoAndPlay()+stop()!=gotoAndStop()

以前一直以为是相等的,今天做一个导航时才发现它们不等,这是后来我的测试:

主场景中有几个用来当按钮的MC,名称分别为:menu01,menu02,menu03;
还一个MC名称为menupic
在主场景中写上:

menu01.onRollOver = function() {
_root.menupic.gotoAndPlay(2);
};

menupic有两帧:
第一帧写有:

trace(“1”);
stop();

[#afdream.com#]
第二帧写有:

trace(“2”);
stop();

当你连续把鼠标移到menu01上时输出的结果为:

1
2
1
2
1
2
1
2
1
2

但是如果在主场景中写上:

menu01.onRollOver = function() {
_root.menupic.gotoAndStop(2);
};

相同的操作,输出的结果为:

2
(只有一个)

AS 3.0、FlashPlayer 8.5、Flex 2.0

貌似要一起出来了。

Flash Player 8.5 内置两套虚拟机(ActionScript Virtual Machine:AVM),一个用来解析全新的AS3,另一个来兼容以前版本的AS。这次AS3的性能会有质变.而不像AS1到AS2那种形式上转变。

Flash IDE 对 AS3 的支持将推迟到下一主版本的发布(Flash 9)。

Flex 2 内部测试已开始,公开测试将从本月17日开始。…

天气预报查询Demo

本来还要提供全部天气预报的 RSS 订阅服务的,但是在调试程序的过程中遇到了一些问题,暂时还不能提供服务[sad]

下面是这个 Demo(不好意思,没有做loading,开始可能看不到任何东西,请耐心等待,谢谢!):

PS:好像在网页中不能用,不知道什么原因,可以下载到本地硬盘(方法:在下面的文字连接上单击右键,选择目标另存为),再运行~

Flash 8 模糊滤镜初体验

想原来要用 Flash MX 2004 做这种效果,实在是有点为难,现在的 Flash 8 的滤镜用起来就方便多了!
代码:

import flash.filters.BlurFilter;
//导入BlurFilter 的package
blurX=100;
blurY=100;
_root.fdPic_mc.onEnterFrame=function(){
blurXdiff=blurX/3;
blurX-=blurXdiff;
blurYdiff=blurY/3;
blurY-=blurYdiff;
var myBlurfilter:BlurFilter = new BlurFilter(blurX, blurY, 10);
/*
建立flash.filters.BlurFilter的实例,使用方法为
var myInstanceName: BlurFilter= new BlurFilter(blurX:Number,blurY:Number, quality:Number);…

一个碎片屏保

效果没有理想中的好。
纯粹利用 as 实现,这样一来,因为全部由CPU计算,使得 CPU 使用率巨高,甚至高达 100%(偶的 CPU 是 AMD Athlon 2500+)

fscommand("fullscreen", true);
function createmc(i) {
	x = Math.random()*1024;
	y = Math.random()*768;
	x1 = Math.random()*40;
	x2 = Math.random()*40;
	x3 = Math.random()*40;
	x4 = Math.random()*40;
	y1 = Math.random()*40;
	y2 = Math.random()*40;
	y3 = Math.random()*40;
	y4 = Math.random()*40;
	color = Math.random()*0xFFFFFF;
	alpha = Math.random()*100;
	_root.createEmptyMovieClip("fd_mc"+i,

几种比较类似的效果

勤练AS,呵呵~
源文件下载: 点此下载

最先看到的是这个,这是后来自己仿做的一个

cctv.com上曾经有一个flash与这个比较类似,不过他的设计很好,用色块做的,很漂亮!
偶就懒得照他做了,就把上面的那个改了下,就变成现在的了~

这个与上面的一个一样,只是多加一个alpha属性, 感觉还可以,所以也一起发了~…

Flash留言本雏形!

因为网费欠缺,断网了两天,又由于课比较多,两天没去交网费,在寝室里上不了网,就只好让 MM(Macromedia) 陪我玩了,在这段时间内,用”三剑客”做了一个 Flash留言本的雏形!

数据存储使用 Access, 脚本使用的是 ASP,动态生成 XML,然后由 Flash 来解析 XML,不过程序现在还有很多BUG, 只有慢慢修改了!

在这个flash里用的比较重要的命令是:
myXML.load();
loadVariablesNum();
tellTarget();
mc.attachMovie();
loadmovie();
mc.removeMovie();
mc.onRollOver();
mc.onRollOut();
mc.onRelease();

基本界面如下:

Flash留言本测试地址:
http://www.afdrem.com/blog/flashgbook/…

Flash里元件命名后缀的妙用

居然到今天才发现后缀对于编程提示的用处,给名字加上一些特殊的后缀,在写脚本的时候就会有自动代码提示,而对于没有后缀的名字,写脚本的时候就不会有脚本提示了!汗,居然到今天才发现!

支持自动代码提示所需的后缀:
————————————————
对象类型 后缀
————————————————
Array _array
按钮 _btn
摄像头 _cam
Color _color
ContextMenu _cm
TextField _txt
ContextMenuItem…

Flash&XML第一个练习成功

从偶的blog的rss读取数据,顺便练习了一下Flist组件,一直不太喜欢用组件的,呵呵~

rss代码(由asp生成)地址:blogrss2.asp
fla代码:
myList.setSize(350, 240);
myList.rowHeight = 24;
var myXML = new XML();
myXML.load(“blogrss2.asp”);
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
if (success) {
for (i=7; i<17; i++) {
myList.addItem({label:myXML.childNodes[0].childNodes[0].childNodes[i].childNodes[1].firstChild.nodeValue});
}
}
};
listenerObject = new Object();
listenerObject.change…