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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.12.2012, 20:36
says вне форума Посмотреть профиль Найти все сообщения от says
  № 1  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
Attention Ооп с дизайнерским подходом

создаю файл с сценой.
в нем,в целях обучения прописываю
Код AS3:
var objClass:TestClass = new TestClass();
objClass.Method();
создаю в этом файле мовиклип с именем Fire и экспортирую для as с именем FirerClip
создаю класс - точку запуска программы
Код AS3:
package
{
	import flash.display.MovieClip;
	import src.ClassTower.FirstClass;
 
	public class TestClass extends MovieClip
	{
		var fClass:FirstClass = new FirstClass();
		public function TestClass():void
		{
			trace("конструктор класса TestClass");
			addChild(fClass.f);
		}
		public function Method():void
		{
			trace("я метод класса TestClass");
		}
	}
}
создаю класс для моего мувиклипа
Код AS3:
package src.ClassTower
{
	import flash.display.MovieClip;
 
	public class FirstClass extends MovieClip
	{
		var f:FireClip = new FireClip();
		public function FirstClass():void
		{
			trace("я конструктор класса FirstClass ");
		}
	}
}
пытаюсь в файлe точке входа вытащить мой мувиклип на сцену,в ответ от флэш получаю такую вещь
1178: Attempted access of inaccessible property f through a reference with static type src.ClassTower:FirstClass.

а так без графически созданных обектов все конструкторы свойства и методы работают безукоризненно...

Старый 08.12.2012, 20:41
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
По-умолчанию доступ к переменным только внутри пакета (internal). Т.е. f будет видна только внутри пакета src.ClassTower. Так что либо исправьте размещение классов по пакетам, либо сделайте публичный геттер, либо объявите переменную f публичной.

Старый 08.12.2012, 21:41
says вне форума Посмотреть профиль Найти все сообщения от says
  № 3  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
это я уже сделал,не помогло,упростил классы до невозможного,теперь,к графике я привязываю основной класс,в ктором создаю экземпляр класса МувиКлип,в конструкторе которого создается переменная из обекта этого же класса и добавляю на экран...ошибки

Код AS3:
package
{
	import flash.display.MovieClip;
 
	public class Gtower extends MovieClip
	{
		public function Gtower():void
		{
			new FireTower();
		}
	}
}
и второй,именно мувик сам
Код AS3:
package  {
 
	import flash.display.MovieClip;
 
	public class FireTower extends MovieClip 
	{
        public var fireTower:FireTower = new FireTower();
		public function FireTower():void 
		{
			addChild(fireTower);
		}
	}
 
}

Старый 08.12.2012, 22:13
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Код AS3:
package  {
 
	import flash.display.MovieClip;
 
	public class FireTower extends MovieClip 
	{
        public var fireTower:FireTower = new FireTower();
		public function FireTower():void 
		{
			addChild(fireTower);
		}
	}
 
}
создали сами себя, и при создание в себя добавили себя..

Код AS3:
package
{
	import flash.display.MovieClip;
 
	public class Gtower extends MovieClip
	{
		public function Gtower():void
		{
			super.addChild(new FireTower());
		}
	}
}
upd
но вообще вы выбрали нехороший подход, и причем тут ООП?
__________________
местонахождение

Старый 08.12.2012, 22:17
says вне форума Посмотреть профиль Найти все сообщения от says
  № 5  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
что делает строка
Код AS3:
super.addChild(new FireTower());
немного конкретики пожалуйста,в справочнике найти не могу..

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
вызывает метод суперкласса addChild в который передает новый экземпляр класса FireTower(на который должен быть залинкован какой-то ассет в библиотеке )
__________________
местонахождение

Старый 08.12.2012, 22:24
says вне форума Посмотреть профиль Найти все сообщения от says
  № 7  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
просто я так понял можно было обойтись такой строкой
Код AS3:
var btn:Fire = new Fire();
			addChild(btn);
но почему я должен в основном классе опять же прописывать что добавляю обект Fire на сцену...

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Цитата:
просто я так понял можно было обойтись такой строкой
можно, мне было лень писать.

Цитата:
но почему я должен в основном классе опять же прописывать что добавляю объект Fire на сцену...
я не телепат, я не знаю как там у вас что-то устроено, гадать не буду.
__________________
местонахождение

Старый 08.12.2012, 22:47
says вне форума Посмотреть профиль Найти все сообщения от says
  № 9  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
а какой подход будет хорошим,если мне нужна сложная фигура оторую кодом задолбаешься рисовать?

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
подход простой, графика\анимация\шрифты собирается в ассет swf\swc.
если swf, то asset подгружается, далее можно работать с его содержимым
если swc, то он подключается к проекту и можно работать с его содержимым
__________________
местонахождение

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

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

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


 


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


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