Код AS2 в AS3 - PullRequest
       40

Код AS2 в AS3

0 голосов
/ 11 августа 2011

Так что у меня есть проблема.Я нашел классный старый телевизионный код зерна (здесь: 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. У вас есть идеи, как это исправить?

Заранее спасибо!

Привет, ребята! СпасибоВы за вашу помощь! Я "работаю" с Flash в течение 2 дней, чтобы вы оба спасли мою жизнь. Я пытался решить мою проблему и читал об этом, но, поскольку мой родной язык не английский, это было немного сложно! Так что спасибоопять же, девушка из Венгрии, кстати. это окончательный код

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;
} 

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

В AS3 вы не можете иметь переменную без значения и ожидать, что она будет иметь такую ​​переменную. Вы должны дать ему значение или установить его как неопределенное. Вы используете 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;
}  

Также обратите внимание, что свойство alpha в AS3 имеет диапазон от 0 до 1 включительно, а не от 0 до 100.

2 голосов
/ 11 августа 2011

Да, вы должны объявить 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;
}
...