Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Еще раз о наследовании (http://www.flasher.ru/forum/showthread.php?t=143791)

LEXiy 25.08.2010 22:40

Еще раз о наследовании
 
Доброго времени суток, знатоки АС3 :)
В общем такой вопрос возник.
Существует класс (назовем его TextButton), который наследуется от MovieClip, еще есть два мувика, которым в "Base Class" (это который в дизайн тайме прописывается во время создания мувика и присвоения ему имени для AS) прописан TextButton. Так вот! Если в этих мувиках будут одинаковые названия у вложенных клипов, то будет появлятся ошибка типа
Цитата:

1152: A conflict exists with inherited definition mytools:TextButton.bg_mc in namespace public.
И самое интересное! Если этим клипам не создавать реальный класс (т.е. прописать название, а файл не создавать) то все работает, а если создать файл даже с простым описанием package и названием класса, то будет ошибка. Вот такие пироги... :o
Это нормально? Или мне в коде у себя где-то ошибку искать?
:wacko:
Спасибо!

expl 25.08.2010 22:47

Исходник в стутию! А то, чую, про разные вещи будем говорить

LEXiy 25.08.2010 22:49

Блин, этого я и боялся... Ладно буду готовить экзампл. А то там слишком много лишнего кода.

Psycho Tiger 26.08.2010 11:51

Вы имеете ввиду, что у Вас в TextButton есть вложенный клип с именем (instance name) bg_mc и в классе BaseClass extends TextButton есть такой же клип?

Flash IDE создаёт поле с именем клипа (instance name), а класс мувиклипа динамический, поэтому допускаются обращения mc.your_clip_name. Но это неприятно, на мой взгляд. Вот из за такого пирога когда у двух клипов есть внутри клип с одним именем у них возникает конфликт переменных - вроде имя клипа есть в ребёнке и поле класса есть у него с тем же именем - и клип с таким же именем в родителе, и там же поле класса с этим именем.
Либо меняйте имя, либо добавляйте их с помощью AS.

LEXiy 26.08.2010 19:16

Не-не...
Не совсем так.
Сегодня постараюсь пример сделать

LEXiy 26.08.2010 19:48

Вложений: 1
Исходник в студии!
Я тут сам немного поразбирался и получилось следующее:
Если MainButton и HSButton не создавать, то работает, и если оба создать, то работает. А вот если один создать, а другой нет - косячок-с всплывает. Интересная штука.
По идее, если файл класса не существует, компилятор создает его автоматически пустым, наследующимся от класса прописанного в поле "Base Class". А значит разницы не должно быть... ну эт я так думаю.

LEXiy 28.08.2010 15:21

...хоть бы пример кто посмотрел...

samana 28.08.2010 16:24

Я вообще ничего не понял.

iNils 28.08.2010 16:45

Цитата:

Сообщение от LEXiy (Сообщение 931969)
...хоть бы пример кто посмотрел...

У многих тут стоит CS3, так что ваш исходник они не посмотрят.

LEXiy 28.08.2010 16:46

В примере все есть.
Да только этот вопрос только для интереса моего остался.

Добавлено через 41 секунду
Ааааа... Вот как :(
Понятно


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

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