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

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

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

Регистрация: Feb 2010
Сообщений: 23
По умолчанию наследование класов

Добрый день.

Создаю два класса:

Код AS1/AS2:
package main  {
	import flash.display.*
	public class MyGame extends MovieClip {
		public function MyGame ():void {
			trace("приступаем");
			var button = new MyButton();
		}
	}
}
и наследуемый от него:

Код AS1/AS2:
package main {
	import flash.display.*
	public class MyButton extends MyGame {
		public function MyButton ():void {
			trace("а вот и подкласс");
		}
	}
}

когда компилирую пишет ошибку:
Error: Error #2136: SWF-файл file:///D|/test/MyGame.swf содержит недопустимые данные.
at main::MyGame()

причём если убрать наследование, то всё работает.

подскажите пожалуйста в чём дело

Старый 01.03.2010, 04:23
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
я в этом не валом шарю =) утром спецы проснутся — ответят более точно. но ты вроде как зацикливаешь процесс. при любом вызове конструктора MyButton будет вызван конструктор MyGame, который в свою очередь вызывает новый конструктор MyButton, который и т.д.
__________________
Поймай яблоко 2!

Старый 01.03.2010, 10:35
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
не путайте наследование и включение. то что майбуттон входит в игру не означает что он наследуется от игры.
вы перепутали child - как ребёнок в списке экранных объектов и
child в смысле наследник - это совершенно разные явления.
__________________
Отряд Котовскага

Старый 01.03.2010, 12:01
dandelion вне форума Посмотреть профиль Отправить личное сообщение для dandelion Найти все сообщения от dandelion
  № 4  
Ответить с цитированием
dandelion

Регистрация: Feb 2010
Сообщений: 23
ну не совсем...
я хочу создать переменную в MyGame которую будет потом модифицировать MyButton. Я так понимаю самое правильно решение это наследование...
Как ещё по другому сделать её видимой для MyButton

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
почитайте умных книжек)..
MyButton не обязан быть дитем от MyGame (как сказали выше). для "модификаций" существуют свойства и методы.
или я просто не понял мысли, чего , собсно, вы хотите
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 01.03.2010, 12:19
dandelion вне форума Посмотреть профиль Отправить личное сообщение для dandelion Найти все сообщения от dandelion
  № 6  
Ответить с цитированием
dandelion

Регистрация: Feb 2010
Сообщений: 23
может хоть главу в книжке покажете))
ещё раз объясню:
есть класс в котором создаётся массив с объектами, в нём находится игровое поле.
Далее надо из других классов обращаться к этому массиву для того чтобы модифицировать клетки на поле.
В умных книжках написано что подклассам доступны переменные определённые в суперклассах. Как по другому получить к ним доступ я не понимаю...

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Так обращайтесь, при чем здесь наследование.
Да, еще, когда доберетесь до умных книжек - почитайте про разницу между классом и его экземпляром. В AS это совсем не одно и то же.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
"В умных книжках написано что подклассам доступны переменные"
вы не дочитали)

доступны свойства, но не их значения )
изменив свойство в экземпляре класса родителя не изменятся значения этих же свойств экземпляров наследников.

для ваших целей используйте события
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 01.03.2010, 12:45
dandelion вне форума Посмотреть профиль Отправить личное сообщение для dandelion Найти все сообщения от dandelion
  № 9  
Ответить с цитированием
dandelion

Регистрация: Feb 2010
Сообщений: 23
блин как всё сложно, а может подскажете всё таки как обратиться,
global то нет в AS 3 )

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от dandelion Посмотреть сообщение
блин как всё сложно, а может подскажете всё таки как обратиться,
global то нет в AS 3 )
Код AS3:
public static var
Но это вам не сильно поможет. У вас проблемы с архитектурой. Мука читайте с самого начала, там зоопарк пишут.

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

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

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


 


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


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