所以我有一个问题。我找到了一个很酷的旧电视谷物代码(这里:http://www.republicofcode.com/tutori...ash/old_grain/),但它用AS2编写,我想把它转换成AS3。继承人原来的剧本
onClipEvent (enterFrame) {
_x = random(640);
_y = random(480);
_rotation = random(360);
_alpha = random(100);
_xscale = nue;
_yscale = nue;
nue = random(65);
}
我的重写版本:
addEventListener(Event.ENTER_FRAME,start);
function start (e:Event):void{
x = Math. random()*640;
y = Math.random()*480;
rotation = Math.random()*360;
alpha = Math.random()*100;
scaleX = nue;
scaleY = nue;
nue = Math.random()*65;
但它说:1120:访问未定义的属性nue。你知道怎么解决它吗?
提前致谢!
嘿伙计们! 谢谢您的帮助!我用闪光灯“工作”了2天,所以你们都救了我的命。我试图解决我的问题,并阅读它,但由于我的第一语言不是英语,它有点复杂!再次感谢, 来自匈牙利的女孩 BTW。这是最终的代码var nue:Number= 65;
addEventListener(Event.ENTER_FRAME, update);
function update(event:Event):void {
x = Math. random()*640;
y = Math.random()*480;
rotation = Math.random()*360;
alpha = Math.random()*10;
nue = Math.random()*65;
scaleX = nue;
scaleY = nue;
}
答案 0 :(得分:2)
是的,您必须将nue
声明为变量:
var nue:Number=1;
addEventListener(Event.ENTER_FRAME, update);
function update(event:Event):void {
x = Math. random()*640; // I think 640 must be stage.stageWidth
y = Math.random()*480; // and 480 must be stage.stageHeight
rotation = Math.random()*360;
alpha = Math.random(); // In AS2 alpha goes from 0 to 100 in AS3 goes from 0 to 1
scaleX = nue;
scaleY = nue;
nue = Math.random()*65;
}
答案 1 :(得分:2)
在AS3中,你不能拥有一个没有价值的变量,并期望它有一个变量。您应该给它一个值或将其设置为undefined。
你在函数的末尾使用nue
,然后给它一个值,它需要反过来:
var nue:Number;
addEventListener(Event.ENTER_FRAME, update);
function update(event:Event):void {
x = Math. random()*640;
y = Math.random()*480;
rotation = Math.random()*360;
alpha = Math.random();
nue = Math.random()*65; // set nue
scaleX = nue; // then use it
scaleY = nue;
}
另请注意,AS3中的alpha
属性的范围为0到1(包括0和1),而不是0到100.