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

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

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
По умолчанию Флеш вылетает при попытке наследоваться от класса документа.

Fla файл, класс документа com.flashgangsta.Main:


Код AS3:
package com.flashgangsta {
 
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class Main extends MovieClip {
 
 
		public var menu:MovieClip;
 
 
		public function Main() {
			this.addEventListener( Event.ADDED_TO_STAGE, init );
		}
 
		public function init( event:Event ):void {
			this.removeEventListener( Event.ADDED_TO_STAGE, init );
			menu = new Menu();
			this.addChild( menu );
		}
 
	}
 
}
Мувиклип Menu:

Код AS3:
package com.flashgangsta {
 
	import flash.display.MovieClip;
 
	public class Menu extends Main {
 
		public function Menu() {
 
		}
	}
}
при попытке компиляции, флеш зависает и вылетает. В чем же беда?
__________________
Убейте меня!

Старый 27.09.2010, 20:07
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а вы у себя рекурсии не видите в коде?

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Честно говоря нет, но кажется начинаю понимать потихонечку. Тыкните пожалуйста пальцем, а-то я пока в AS3 нуб. Учусь
Нужели при наследовании вызывается конструктор суперкласса?
__________________
Убейте меня!


Последний раз редактировалось джонатан; 27.09.2010 в 20:19.
Старый 27.09.2010, 20:27
easy.proger вне форума Посмотреть профиль Отправить личное сообщение для easy.proger Найти все сообщения от easy.proger
  № 4  
Ответить с цитированием
easy.proger

Регистрация: Jun 2010
Адрес: somewhere in the universe
Сообщений: 195
Ну и причем тут "а-то я пока в AS3 нуб" ?

Вот, что у вас происходит

Вы создаете объект, который при добавлении на сцену создаст новый объект и добавит его на сцену, дальше новый объект создаст опять объект и опять его добавит на сцену и т/д

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Конечно вызывается... Вам не наследование от документ класса нужно, а просто menu будет дочерним элементов в списке отображения. Не путайте теплое с мягким

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
т.е. я правильно понял, что Main создает Menu, который опять вызывает конструктор Main и создает Menu, верно? А как же мне тогда быть? Я просто хочу из Menu вызывать методы Main... Но не хочу ограничиваться только статикой.

Hidest, т.е. из меню я смогу вызывать методы класса Main через parent?
__________________
Убейте меня!

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Ну если хотите, вызывайте (если уверены, что у вас меню будет всегда находится в main, а не переместиться когда-нибудь в какой-нибудь контейнер)... или передавайте ссылку в конструктор, тогда вам будет все равно на все изменения иерархии в дисплей листе.

Код AS3:
package com.flashgangsta {
 
	import flash.display.Sprite;
 
	public class Menu extends Sprite {
 
        private var _target:Main;
 
		public function Menu(menuTarget:Main) 
               {
                    _target = menuTarget;
                    _target.doSomething();
		}
	}
}


Последний раз редактировалось Hidest; 27.09.2010 в 21:17.
Старый 27.09.2010, 20:45
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 8  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
по parent не вышло:
E:\!!WORK\!flashgangsta.com\src\..\com\flashgangsta\Menu.as, Line 15 1061: Call to a possibly undefined method test through a reference with static type flash.displayisplayObjectContainer.

а вот по передаче в конструктор все ок. Спасибо большое всем, сегодня я узнал много нового, а главное полезного!
__________________
Убейте меня!

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Так в тесте ошибки все у вас сказано бежевым по серому: нет метода test у экземпляра класса.

(parent as Main).yourMethodInMainClass();

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Возвращаюсь к теме. У меня возникла проблемка с вызовом метода родительского класса через ссылку.

Код AS3:
public class Main extends MovieClip {
	public function Main() {
	    sectionsContainer = new Sprite();
	    personagesRepository = new PersonagesRepository( this );
	    sectionsContainer.addChild( personagesRepository );
	    this.addChild(sectionsContainer);
        }
 
	public function showProfile():void {
		trace( "showProfile" );
	}
}
Код AS3:
public class PersonagesRepository extends MovieClip {
 
	public function PersonagesRepository( mainLink:Object ) {
		main = mainLink as Main;
		main.showProfile();
	}
}
Ошибка: 1195: Attempted access of inaccessible method showProfile through a reference with static type com.russianRoulette:Main.

Подскажите пожалуйса как исправить?

Кстати вот так:

Код AS3:
main.showProfile.call();
Ошибки нет!
__________________
Убейте меня!


Последний раз редактировалось джонатан; 20.10.2010 в 17:55.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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