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

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

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

Регистрация: Jul 2011
Сообщений: 63
По умолчанию Одеть персонажа

Весь персонаж состоит из множества мувиклипов. Нужно на некоторые из этих мувиклипов наложить другие мувики.
К примеру есть голова, на ню можно надеть шляпу или очки. Как это реализировать?

Попытался так:
Код AS3:
var i:int;
i = 1;
if (i == 1)
{
var balda:head1 = new head1;	
}
if (i == 2)
{
var balda:head2 = new head2;
}
 
balda.addEventListener(Event.ENTER_FRAME, baldaPos);
 
function baldaPos(E:Event):void 
{
	balda.x = sHead.x;
	balda.y = sHead.y;
}
Но флеш выдал ошибку:
Цитата:
Scene 1, Layer 'Layer 1', Frame 1, Line 11 1151: A conflict exists with definition balda in namespace internal.
Вот исходник.

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

Регистрация: Nov 2009
Сообщений: 300
А зачем ты два раза балду объявляешь? Объяви перед проверкой, а потом просто присваивай.

Старый 04.08.2011, 17:53
recew вне форума Посмотреть профиль Отправить личное сообщение для recew Найти все сообщения от recew
  № 3  
Ответить с цитированием
recew

Регистрация: Jul 2011
Сообщений: 63
Все, разобрался. Спасибо.

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

Регистрация: May 2010
Сообщений: 543
var balda:head1 = new head1;

Правильно new head1();

Аргумент, что Ваш вариант, не даст ошибки, не принимается!
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 04.08.2011, 18:27
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Аргумент, что Ваш вариант, не даст ошибки, не принимается!
Вы суровы =)
Код AS3:
if (i == 1) var balda:head1 = new head1;	
else if (i == 2) var balda:head2 = new head2;
(позволил себе подкорректировать код)
При таком раскладе должен вывалиться варнинг о дублировании переменной. FlashIDE, помнится, не выдает, похоже, ее компилятор не выносит объявления переменных из условий-циклов.
Кроме того, в данном случае правильно создать одну переменную вне условий с одним общим типом. Это может быть как общий интерфейс IHead, так и какой-то общий суперкласс - HeadCore (прям как HardCode, хех).
__________________
тут я

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

Регистрация: May 2010
Сообщений: 543
Цитата:
Вы суровы =)
Ну это же фактически как первый закон термодинамики!
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 04.08.2011, 18:30
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Тогда второй закон: не пишите в кадрах!
__________________
тут я

Старый 04.08.2011, 18:53
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 8  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от carrotoff Посмотреть сообщение
var balda:head1 = new head1;
Правильно new head1();
Аргумент, что Ваш вариант, не даст ошибки, не принимается!
Рекомендую заглянуть в книгу К.Мука и прочесть советы профессионалов. Одним из которых и есть создания класса не принимающего параметров без "( скобок )"; Нарушением синтаксиса это не считается!
В том или ином случае конструктор создаваемого объекта срабатывает.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 04.08.2011, 18:59
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 9  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Никто и не спорит, что срабатывает. Но так правильно по конвенции, вот и все.
__________________
тут я

Старый 04.08.2011, 20:44
recew вне форума Посмотреть профиль Отправить личное сообщение для recew Найти все сообщения от recew
  № 10  
Ответить с цитированием
recew

Регистрация: Jul 2011
Сообщений: 63
Использовать скобки при отсутствии агрументов для конструктора или нет, это зависит от вашего стиля написания кода)


Последний раз редактировалось recew; 04.08.2011 в 21:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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