Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707

Наследование

23.03.2012, 19:47. Показов 1574. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно вопрос в следующем:
есть герой, у него есть несколько состояний (stand, walk, die и т.д.) на каждом кадре находится MovieClip, который содержит анимацию своего состояния и он соответсвенно назван stand, walk или die.
затем у нас есть перерисованный герой, который по функциональности выполняет такие же действия, но у его состояний другие картинки, соответственно у него они также названы stand, walk, die. В результате этого мне выдается ошибка:
1152: : A conflict exists with inherited definition heroes:FireMage.attackRightForward in namespace public.
Как это победить ?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2012, 19:47
Ответы с готовыми решениями:

Наследование
Подскажите пожалуйста: есть 2 класса - Bullet и LightBeam LightBeam наследует от Bullet в классе Bullet описан параметр speed и метод...

Наследование от Main
Почему при наследовании классов от класса Main флеш выдает ошибку "Класс ребенка содержит недопустимые данные? К примеру: Есть...

Наследование основных классов
в одних уроках заметил такую последовательность package com.test{ import flash.display.Sprite; import...

12
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
23.03.2012, 22:41
Похоже, что ошибка не в наследовании. Покажи код.
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
24.03.2012, 09:04  [ТС]
Там ошибка в том, что у меня в родителе есть объявленная переменная var explosion:MovieClip, а затем
у меня есть наследник, MovieClip которого лежит в библиотеке и у него в этот MovieClip вставлен ещё один MovieClip, который также назван explosion (потому что по сути родитель должен совершить действия именно над этим объектом). А в итог, как я понял получается то, что Flash начинает ругаться на то, что я как бы пытаюсь переписсать данную переменную

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package bullets
{   
    import flash.display.*;
    import flash.events.*;
    import heroes.*;    
    import flash.utils.Timer;
    
    public dynamic class Mine extends MovieClip
    {   
        protected var explosion:MovieClip;
 
        public function Mine(stageRef:Stage, hero:Hero)
        {
            // бла бла бла
        }
        // и тут методы пошли, которые explosion используют
    }
}
 
package bullets
{
    import flash.display.*;
    import flash.events.Event;
    import heroes.*;        
    
    public class Mine1 extends Mine
    {       
        
        public function Mine1(stageRef:Stage, hero:Hero)
        {
            damage = 40;
            super(stageRef, hero);
        }
    }   
}
Mine1 - симвод из библиотеке в котором есть movieCLip с именем explosion
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
24.03.2012, 12:01
Я правильно понял, что имеется 2 класса с одинаковыми именами? Так нельзя. Должны отличаться хотя бы package-ы, но тогда названия классов прописывать необходимо с учетом package.
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
24.03.2012, 12:23  [ТС]
нет, есть класс Mine, Mine1 и Mine2. Mine1 и Mine2 наследуют от Mine.
Mine1 и Mine2 имеют в библиотеке свои moveiClip
В данных MovieClipах на временной шкале вставлен ещё 1 мувиклип (и в Mine1, и в Mine2), которому здесь же (там где name of instance) дано имя explosion. Т.е. я могу обращаться в классе Mine1 и Mine2 к мувиклипу с именем explosion (explosion.play()).
В классе Mine я хочу описать общее поведение для explosion Из Mine1 и Mine2. Т.е. что-то типо:
ActionScript 3
1
if hitTestObject(monster) explosion.play();
Соответственно это должны унаследовать Mine1 и Mine2. Но проблема в том, что мне приходится в родительском классе прописывать
ActionScript 3
1
protected var explosion:MovieClip
чтобы он знал что такое explosion вообще, но в связи с этим он мне выдает данную ошибку, походу связанную с тем, что он думает, что я хочу не присвоить переменной explosion мувиклипы из Mine1 и Mine2 с аналогичными именами, а пересоздать данную переменную.

P.S. Я не знаю, как понятнее объяснить))
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
24.03.2012, 15:34
Цитата Сообщение от Theoryofgames Посмотреть сообщение
Я не знаю, как понятнее объяснить
Покажи минимальный пример, иллюстрирующий проблему.
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
25.03.2012, 00:13  [ТС]
Первая ошибка - как раз, что я имею ввиду
Вложения
Тип файла: rar Test.rar (8.1 Кб, 8 просмотров)
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
25.03.2012, 00:18
Есть 2 группы классов с одинаковыми названиями: одни - as-файлы, другие - те, что созданы непосредственно во флеше. Вот и конфликт.
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
25.03.2012, 00:26  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
Есть 2 группы классов с одинаковыми названиями: одни - as-файлы, другие - те, что созданы непосредственно во флеше. Вот и конфликт.
Здесь я не понял... По сути они же не конфликтовать, а дополнять друг друга должны. Как в данной ситуации сделать так, чтобы данный пример работал? Просто у меня сейчас убрано наследование и получается, что один и тот же код тупо закопипастен в 2 места, что естественно неправильно.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
25.03.2012, 01:54
Странная структура, рекомендую пересмотреть.
Вот пример того, что наверное задумывалось
Test.rar
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
25.03.2012, 09:25  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
Вот пример того, что наверное задумывалось
Да, но в этом случае Smth1 и Smth2 не будут выполнять метод loop, который они должны наследовать их Smth. По сути задумывалось описать все в Smth, а в Smth1 и Smth2 менять просто 1 параметр (например урон от взрыва).
Единственный вариант, который мне приходит в голову - это собирать explosion в Smth1 и Smth2 с помощью кода AS (explosion = new Circle() и explosion = new Rect() ), но это лишний геморой, потому что по задумке в Smth1 и Smth2 используются разные символы взрыва.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
25.03.2012, 11:42
Цитата Сообщение от Theoryofgames Посмотреть сообщение
Да, но в этом случае Smth1 и Smth2 не будут выполнять метод loop, который они должны наследовать их Smth.
Не будут. Но этот метод будут выполнять "над ними". Во флеше нет множественного наследования, когда из 2х разных классов собирается один. Его реализация в некоем роде доступна через интерфейсы.
Цитата Сообщение от Theoryofgames Посмотреть сообщение
По сути задумывалось описать все в Smth
А в моем примере не так? Только при изменении к.-л. свойств мы обращаемся не к this, а к _mc.
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
25.03.2012, 12:06  [ТС]
Я не то сначала открыл просто, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2012, 12:06
Помогаю со студенческими работами здесь

Наследование на основе MovieClip
Добрый вечер, подскажите пожалуйста можно ли создать класс для нескольких movieclip(ов). Есть 8 мувиков, 4 из них должны осуществлять...

Наследование шаблоном шаблона (наследование конструктора)
Всем привет! Думаю, что эта тема хоть и касается общих вопросов программирования, но будет уместна в данном разделе т.к. у различных...

Заменить наследование классов на наследование интерфейсов
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование интерфейса и наследование реализации
Начал читать книгу GoF и сразу же в предисловии попал в тупик. Чем отличается наследование интерфейса от наследования реализации? Что такое...

Наследование С# , наследование полей
В классе есть приватное ПОЛЕ . Мне нужно использовать его в классе потомке . Можно это не сделать не делая поле публичным .


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru