Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.06.2008, 17:03
Dizz вне форума Посмотреть профиль Отправить личное сообщение для Dizz Найти все сообщения от Dizz
  № 1  
Ответить с цитированием
Dizz

Регистрация: Jun 2008
Сообщений: 11
По умолчанию Адаптация кода к другой версии.

И дело пожалуй даже не в as1 или as2. Как я понимаю дело в разнице их интерпретации в flash 6 и 8.

Сама суть такова. Попался исходник с удачным эффектом. При настройках под плейер 6 всё работает отлично, а под 8 - нет.

Как правильно интерпретировать код? Есть какие-то специальные таблицы или разработанные рекомендации?

Если нужен сам код то вот он:
Код:
onClipEvent (load) {
	num = 25;
	i = 1;
	while (num>=i) {
		star.duplicateMovieClip("star"+i, i+1889);
		mc = this["star"+i];
		mc.rX = (random(5)+4)/1000;
		mc.rY = (random(5)+4)/1000;
		mc._x = random(300)-150;
		mc._y = random(150)-75;
		i++;
	}
	star._visible = 0;
}
onClipEvent (enterFrame) {
	i = 1;
	while (num>=i) {
		if ((mc._x == 0) || (mc._y == 0)) {
			mc._x = random(100)+50;
			mc._y = random(50)+25;
		} else {
			mc = this["star"+i];
			mc.xAcc = mc.xAcc+((10-mc._x)*mc.rX);
			mc.yAcc = mc.yAcc+((10-mc._y)*mc.rY);
			mc._x = mc._x+mc.xAcc;
			mc._y = mc._y+mc.yAcc;
		}
		i++;
	}
Как видите, совсем короткий, но я не могу понять в чём проблема.

Спасибо за помощь!

Старый 07.06.2008, 17:29
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 2  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Вот сделайте так функцию создания клипов:
Код:
while (num>=i) {
		star.duplicateMovieClip("star"+i, i+1889);
		mc = this["star"+i];
		mc.rX = (random(5)+4)/1000;
		mc.rY = (random(5)+4)/1000;
		mc.xAcc = 0;    //**********Обратите внимание на вот это****************
		mc.yAcc = 0;    
		mc._x = random(300)-150;
		mc._y = random(150)-75;
		i++;
	}
__________________
Случайность, господа, это знаете ли непознанная необходимость.


Последний раз редактировалось Alex_beginner; 07.06.2008 в 17:34.
Старый 07.06.2008, 17:30
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 3  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
посмотрите все переменные и названия мувиков.
8-ка чувствительна к регистру, т.е. если мувик назван (на линейке, к примеру) не star, а Star, то в 8-ке работать не будет.

Старый 07.06.2008, 20:43
Dizz вне форума Посмотреть профиль Отправить личное сообщение для Dizz Найти все сообщения от Dizz
  № 4  
Ответить с цитированием
Dizz

Регистрация: Jun 2008
Сообщений: 11
Цитата:
Сообщение от Alex_beginner Посмотреть сообщение
**********Обратите внимание на вот это************
Просто как всё гениальное. Я догадался им что-то в загрузке присвоить, но вставил ДО цикла. Эхе-хе...

СПАСИБО!!!

Старый 09.06.2008, 15:09
Dizz вне форума Посмотреть профиль Отправить личное сообщение для Dizz Найти все сообщения от Dizz
  № 5  
Ответить с цитированием
Dizz

Регистрация: Jun 2008
Сообщений: 11
А как же всё-таки общие подходы к адаптации?
И почему верхний вариант работал в 6 и не стал в 8?

Старый 16.06.2008, 17:32
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 6  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от Dizz Посмотреть сообщение
А как же всё-таки общие подходы к адаптации?
И почему верхний вариант работал в 6 и не стал в 8?
В 6-ке undefined.toString() будет равно пустой строке, т.е. ""
(переменная mc.xAcc не объявлена, потому в строковом виде равна "").

В 7-ке и выше undefined.toString() будет равно строке "undefined"
(переменная mc.xAcc не объявлена, потому в строковом виде равна "undefined").

AVM динамически приводит типы данных, поэтому ""+1=1,
а вот "undefined"+1, будет NaN, вместо, казалось бы очевидного, "undefined1" (такой результат даст выражение "undefined"+"1")

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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