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

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

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

Регистрация: Sep 2011
Сообщений: 366
По умолчанию Помогите новичку с ООП

Не могу добавить элемент из библиотеки
вот код класса
Код AS3:
package  {
	import flash.display.MovieClip;
 
	public class registration {
		public var b:box;
 
		public function registration() {
			b = new box;
			addChild(box);
			trace("dadas");
		}
	}
 
}
пишет ошибку 1180: Call to a possibly undefined method addChild.
это типа я не импортировал класс который содержит эдчайлд или нельзя добавлять элементы из библиотеки через класс?

Старый 20.01.2014, 18:44
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 2  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Откуда известно [this].addChild - это DO?

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Класс должен расширять Sprite или MovieClip.
А в вашем классе просто нет метода addChild()

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

Регистрация: Sep 2011
Сообщений: 366
c this другая ошибка 1061: Call to a possibly undefined method addChild through a reference with static type registration.
Код AS3:
package  {
	import flash.display.MovieClip;
 
	public class registration {
		public var b:box;
 
		public function registration() {
			b = new box;
			this.addChild(box);
			trace("dadas");
		}
	}
 
}
Добавлено через 46 секунд
это не основной класс, я так полагаю он необязательно должен расширять мувиклип или спрайт

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

Регистрация: Jun 2013
Сообщений: 133
Цитата:
Сообщение от grafillo! Посмотреть сообщение
это не основной класс, я так полагаю он необязательно должен расширять мувиклип или спрайт
Ну если вы так полагаете, тогда вам надо определить свой метод addChild.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Любой объект (класс), который должен быть визуально виден, необходимо расширять. А иначе, как этот класс догадается, что он отображаемый объект?
Цитата:
это не основной класс, я так полагаю он необязательно должен расширять мувиклип или спрайт
Тогда объясните для чего вам класс registration и какую задачу он должен выполнять.

Старый 20.01.2014, 18:59
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 7  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
всмысле, почему метод addChild не работает то?

Добавлено через 1 минуту
этот класс не отображаемый объект, он добавляет на сцену объект из библиотеки

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Код AS3:
this.addChild(box);
this - ссылается на экземпляр того класса, в котором прописана данная строка. В вашем случае this = registration. Вы пытаетесь добавить box в registration, а это невозможно, так как registration не отображаемый объект. Ваш класс registration ничего не знает о главной сцене, ведь он никак не связан с ней.
Передайте ссылку на сцену классу registration, и через эту ссылку уже обращайтесь к сцене и добавляйте на неё то, что вам нужно.

Старый 20.01.2014, 19:25
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 9  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
вообщем мне нужно чтобы класс регистрашн добавлял на сцену окно регистрации с кучей полей, как это лучше всего сделать? поля и само окно находится в библиотеке, напишите в виде примера кода пожалуйста.

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

Регистрация: Jun 2013
Сообщений: 133
Код AS3:
package  {
	import flash.display.MovieClip;
 
	public class registration {
		public var b:box;
 
		public function registration(container:DisplayObjectContainer) {
			b = new box;
			container.addChild(box);
			trace("dadas");
		}
	}
 
}

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

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

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


 


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


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