您的位置:首页 > 其它

每天学一点flash(56)循环的小实验

2009-08-15 23:08 267 查看
今晚,跟暗酷这两个网友和Flashstatt一晚都是在讨论As3的内容。感觉到自己越来越笨,对于As3的设计,感觉到越来越有学问,而之前所学的仅仅是小问题而已。今晚和FlashStar 讨论了界面和业务逻辑分离设计问题,突然对这部分内容感觉到一片空白。实在有点可怕。还继续努力。



今晚讨论的问题:在QQ界面里面,用于修改字体,颜色和发表情的功能栏 是如何影响输入框里面的字体和颜色呢? 如果需要进行设计?怎样设计好?



今天的问题就是这样

回归问题: 关于for循环如何打断循环,其实这个问题不算难。但是的确有一些意思 例如:创建一个As3 的文档,然后在里面看看输出的结果是什么?

for(var i:int=0;i<4;i++)
{
  var s:int=i;
  trace(s);
  
}
 
var j:int=s;
 
trace("?"+j);


结果发现了,trace的内容是?3

问题是:var 不是局部变量吗?是不是很奇怪?

function aa():void
{
	for(var i:int=0;i<4;i++)
	{
	}
	for(var i:int=0;i<4;i++)
	{
	}
}


输出的时候 这样的话,就提示 i重复定义了。

function aa():void
{
	for(var i:int=0;i<4;i++)
	{
		var s:int=i;
	}
	for(var i:int=0;i<4;i++)
	{
		s+=i;
	}
	trace(s);
}
aa();
如果这样的话,就会输出了结果等于9 ---3+0+1+2+3=9.s就是同一个域里面

只要在一个方法体内就是同一个东西。
重复定义会覆盖。

for(var i:int=0;i<10;i++){
	if(i==5){
		break
	}
	trace(i)
}
这个到了5会被打断。

再看看下面,会输出多少?

for (var i:int=0; i<10; i++) {
	for (var j:int=0; j<10; j++) {
		if ((i==8)&&(j==0)) {
			break;
		}
		trace(10*i+j);
	}
}


再看下面又会输出多少:

for (var i:int=0; i<10; i++) {
	for (var j:int=0; j<10; j++) {
		if ((i==8)&&(j==0)) {
			return;
		}
		trace(10*i+j);
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: