Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   конвертировать FlashPlayer6 в FlashPlayer8 (http://www.flasher.ru/forum/showthread.php?t=157003)

polol 30.05.2011 10:18

конвертировать FlashPlayer6 в FlashPlayer8
 
доброе утро всем!

подскажите кто еще помнит as1: как переделать этот скрипт, чтобы он корректно работал с FlashPlayer 8+. На данный момент в опциях Publish он еще работает, если выбрать as2, но отказывается, если player выше версии 6.

Код AS1/AS2:

cols = 7;
rows = 10;
y = 100;
fl=100;
for (z=-cols/2; z<cols/2; z++) {
        angle=start+=.9;
        for (x=-rows/2; x<rows/2; x++) {
                mymc=attachMovie("mymc", "l"+i, 20000-i++);
                scale = fl/(fl+z*20+75);
                mymc.x = (x*450)*scale+270;
                mymc.y = (y)*scale+150;
                mymc._xscale=mymc._yscale=scale*100;
//                mymc._alpha=scale*100;
                mymc.onEnterFrame = wave;
                mymc.angle=angle+=.7;
                mymc.speed=.1;
                mymc.height=20;
        }
}
function wave(){
        this._x=this.x;
        this._y=this.y+Math.sin(this.angle+=this.speed)*this.height;
}


dark256 30.05.2011 11:32

на какие номера строк ругается?

в ФОР добавьте var

lexa2000lexa 30.05.2011 12:16

В вашем коде не определенна переменная i, следовательно не происходит атача так как неправильно определяется глубина.
Также нужно определить переменную start.

polol 30.05.2011 13:15

да вот даже не ругается, просто тупо не делает. просветите, что такое ФОР?

Добавлено через 2 минуты
@ lexa2000lexa попробую. start он вообще воспринимает как родную функцию, инфу про нее не нашел, впервые вижу такую

lexa2000lexa 30.05.2011 13:30

Вам нужно их просто определеть
Код AS1/AS2:

cols = 7;
rows = 10;
y = 100;
fl=100;
i=0;
start=0;
for (z=-cols/2; z<cols/2; z++) {
        angle=start+=.9;
        for (x=-rows/2; x<rows/2; x++) {
                mymc=attachMovie("mymc", "l"+i, 20000-i++);
                scale = fl/(fl+z*20+75);
                mymc.x = (x*450)*scale+270;
                mymc.y = (y)*scale+150;
                mymc._xscale=mymc._yscale=scale*100;
//                mymc._alpha=scale*100;
                mymc.onEnterFrame = wave;
                mymc.angle=angle+=.7;
                mymc.speed=.1;
                mymc.height=20;
        }
}
function wave(){
        this._x=this.x;
        this._y=this.y+Math.sin(this.angle+=this.speed)*this.height;
}

так как в 6 плеере неопределенная переменная считалась 0 а выше это уже было NaN, соответственно расчены давали не коректный результат.

dark256 30.05.2011 13:33

Код AS1/AS2:

for (z=-cols/2; z<cols/2; z++)

надо так:

Код AS1/AS2:

for ( var z=-cols/2; z<cols/2; z++)

Ну и к тому же пихать в счетный цикл нецелые индексы - ересь :)


Часовой пояс GMT +4, время: 01:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.