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

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

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

Регистрация: Jan 2010
Сообщений: 187
Question Ошибка дублирования переменной

Есть кусок кода. Вот такой:


Код AS3:
	ccc = Math.ceil((Math.random()*3));
 
	if (ccc==1) {var tmpSprite:Sprite = new l1();} 
	if (ccc==2) {var tmpSprite:Sprite = new l2();} 
	if (ccc==3) {var tmpSprite:Sprite = new l3();}
При компиляции флеш выдаёт ошибку Warning: 3596: Duplicate variable definition.
Но всё работает.
Можно как-то избежать появления этой ошибки?

Я придумал, вместо кучи строчек с if использовать одну, в которую подставлять вместо l1, l2 и l3
"l"+ccc но пока не понял как оно рботает.
Если подставляю ... = new "l"+ccc.name() оно ругается.

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

Регистрация: Jun 2006
Сообщений: 400
Код AS3:
 
ccc = Math.ceil((Math.random()*3));
 var tmpSprite:Sprite;
 
	if (ccc==1) {tmpSprite = new l1();} 
	if (ccc==2) {tmpSprite = new l2();} 
	if (ccc==3) {tmpSprite = new l3();}
tmpSprite - три раза определили.

Старый 02.06.2010, 13:03
In8Finity вне форума Посмотреть профиль Отправить личное сообщение для In8Finity Найти все сообщения от In8Finity
  № 3  
Ответить с цитированием
In8Finity

Регистрация: Jan 2010
Сообщений: 187
Ага. От оно чо.
Я то думал, что работает тот кусок кода только, в котором условие выполняется.
Тоесть из трёх этих строк определиться только там tmpSprite, где условие сработает.
Спасиб.

Старый 02.06.2010, 13:14
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 4  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
Компилятор странно себя ведет) Но что поделаешь. Сработает даже вот так:

Код AS3:
		ccc = 3;
 
 
		if (ccc==2) {tmpSprite = new Sprite();} 
		if (ccc == 3) { tmpSprite = new Sprite(); }
		if (ccc==1) {var tmpSprite:Sprite = new Sprite();}
Но к таким фичам лучше не привыкать))

Старый 02.06.2010, 13:25
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 5  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
кстати, в некоторых ситуациях этот warning очень не логичен
__________________
Flash Developer
Папа TDP4 Team Battle

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

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

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


 


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


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