sdw85 2008-7-2 21:13
布朗运动中没办法用组件来确定分子的数目
我的意图是想用slider组件来确定里面分子的数目,可是效果并不是我想象的那样
哪位大虾来帮小弟看看啊
bbkx 2008-7-2 23:21
:victory: :victory: :victory:
sdw85 2008-7-3 06:56
多谢谢!!!
那还有没有直接的办法,就是用slider来改变其数目
sdw85 2008-7-3 12:45
如何多次啊,请教啊
而且用这种方法我发现刚开始舞台上是不显示什么的,
只有当点击了slider后,才显示
如何让舞台上刚开始就显示呢
[[i] 本帖最后由 sdw85 于 2008-7-3 12:58 编辑 [/i]]
终极讨厌 2008-7-3 18:45
[code]package {
import flash.display.Sprite;
import flash.events.Event;
public class Blmove extends Sprite {
private var num:Number;
private var balls:Array=new Array();
private var friction:Number=0.95;
public function Blmove():void {
slider.addEventListener(Event.CHANGE,q);
addEventListener(Event.ENTER_FRAME,s);
slider.value=10;
slider.dispatchEvent(new Event("change"));
}
private function init():void {
var _len:uint=balls.length;
if (_len <num) {
for (var i:Number=_len; i<num; i++) {
var ball:Ball=new Ball(5);
ball.x=Math.random()*stage.stageWidth;
ball.y=Math.random()*stage.stageHeight;
ball.vx=0;
ball.vy=0;
addChild(ball);
bound(ball);
balls.push(ball);
}
} else if (_len>num) {
for (var j:Number=num; j<_len; j++) {
removeChild(balls.pop());
}
}
}
private function q(evt:Event):void {
num=slider.value;
init();
}
private function s(evt:Event):void {
for (var i:Number=0; i<num; i++) {
balls[i].vx+=Math.random()*2-1;
balls[i].vy+=Math.random()*2-1;
balls[i].x+=balls[i].vx;
balls[i].y+=balls[i].vy;
balls[i].vx*=friction;
balls[i].vy*=friction;
bound(balls[i]);
}
}
private function bound(ball:Ball):void {
if (ball.x>stage.stageWidth) {
ball.x=stage.stageWidth;
ball.vx*=-1;
ball.vy*=-1;
} else if (ball.x<0) {
ball.x=0;
ball.vx*=-1;
ball.vy*=-1;
}
if (ball.y>stage.stageHeight) {
ball.y=stage.stageHeight;
ball.vx*=-1;
ball.vy*=-1;
} else if (ball.y<0) {
ball.y=0;
ball.vx*=-1;
ball.vy*=-1;
}
}
}
}[/code]
ycccc8202 2008-7-5 16:08
楼主把组件的参数面版的参数也进行了设置所以导致出现问题~
把组件还原为最初状态,用程序进行控制~
sdw85 2008-7-7 07:37
那如何让开始时的初始数目每次都随机啊
而不是在原来的基础上加加减减
终极讨厌 2008-7-7 12:40
public function Blmove():void {
slider.addEventListener(Event.CHANGE,q);
addEventListener(Event.ENTER_FRAME,s);
slider.value=uint(Math.random()*100 );//这里
slider.dispatchEvent(new Event("change"));
}
sdw85 2008-7-7 22:53
我的意思是比如我开始设置的SLIDER的数值是10,则刚开始出来随即的10个分子
然后我把SLIDER的数值改为20 ,舞台上在出现随即的20个分子(相当于每次改变都重新出现)
sdw85 2008-7-10 16:06
看到了
谢谢哦
不过你的哪个上面有个语法我不懂
就是…………&&…………的