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

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

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

Регистрация: Mar 2015
Сообщений: 64
По умолчанию добавление кнопки через класс

Доброго времени суток!!!

В графическом редакторе Adobe Flash CS4 нарисовал кнопку и преобразовал её в Button и в строке Class задал имя нового класса для этой кнопки BuildVertical, после строки Base Class указал flash.display.SimpleButton. На сцене экземпляр этой кнопки не размещал.
Далее создал файл as с названием BuildVerticalClass со следующим содержанием:
Код AS1/AS2:
package CellAndRoadPG.gameButtonsPG{
 
	import flash.display.Sprite; 
	import flash.events.MouseEvent;
 
	public class BuildVerticalClass extends BuildVertical{
 
		private var buildVertical = new BuildVertical;
 
		public function BuildVerticalClass(){
			buildVertical.x = 30;
			buildVertical.y = 860;
		}
	}
}

В главном классе прописал (главный класс называется Main):
Код AS1/AS2:
package cellAndRoadPG{
 
	import cellAndRoadPG.cellPG.*;
	import cellAndRoadPG.roadPG.*;
	import CellAndRoadPG.gameButtonsPG.*;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
        //какой-то код
 
      /////////////////////////////СТРОИТЕЛЬСТВО ДОРОГИ/////////////////////////////////////////////
        internal function fPlaceButtons(e:Event){
			var buildVertical:BuildVerticalClass = new BuildVerticalClass();
			main.addChild(buildVertical);
		    main.removeEventListener(Event.ENTER_FRAME, fPlaceButtons);
	    }
	}
}
На этапе компиляции появляются следующие ошибки:
1046: Type was not found or was not a compile-time constant: BuildVerticalClass.
1180: Call to a possibly undefined method BuildVerticalClass.

Знаю, проблема не новая, но не нашел схожих с моим вариантов реализации.
Пожалуйста, кто может помочь укажите где ошибка или дайте совет.

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

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

Старый 01.07.2015, 23:38
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Меня тоже поначалу смутили эти обстоятельства, но я за него отвечу: а почему бы и нет? Ничего ломаться не должно.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я тоже себе отвечу: нет addChild(), потому что SimpleButton не контейнер.
Насчет ошибок — надо бы структуру пакетов сверить, например вот:
package CellAndRoadPG.gameButtonsPG
но
import cellAndRoadPG.cellPG.*;
там что, две папки с почти одинаковым названием?
__________________
Reality.getBounds(this);

Старый 02.07.2015, 11:09
бакуард вне форума Посмотреть профиль Отправить личное сообщение для бакуард Найти все сообщения от бакуард
  № 5  
Ответить с цитированием
бакуард

Регистрация: Mar 2015
Сообщений: 64
Изменил структуру папок: класс BuildVerticalClass находится в папке с именем gameButtonsPG, которая в свою очередь находится в папке с именем сellAndRoadPG.

Теперь в классе BuildVerticalClass прописано:
Код AS3:
package сellAndRoadPG.gameButtonsPG{
 
	import flash.display.Sprite; 
	import flash.events.MouseEvent;
 
	public class BuildVerticalClass extends BuildVertical{
 
		public function BuildVerticalClass(){
			buildVertical.x = 30;
			buildVertical.y = 860;
		}
	}
}
А в классе Main:
Код AS3:
package cellAndRoadPG{
 
	import cellAndRoadPG.cellPG.*;
	import cellAndRoadPG.roadPG.*;
	import сellAndRoadPG.gameButtonsPG.*;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
//какой-то код
 
/////////////////////////////СТРОИТЕЛЬСТВО ДОРОГИ/////////////////////////////////////////////
        internal function fPlaceButtons(e:Event){
			var buildVertical:BuildVerticalClass = new BuildVerticalClass();
			main.addChild(buildVertical);
		    main.removeEventListener(Event.ENTER_FRAME, fPlaceButtons);
	    }
	}
}
Добавлено через 7 минут
Теперь появилась ошибка 1172: Definition сellAndRoadPG.gameButtonsPG could not be found.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Чтобы таких конфузов не возникало, надо именовать все по конвенциям. Названия пакетов нужно всегда писать только маленькими буквами слитно

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

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

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

Регистрация: Mar 2015
Сообщений: 64
Спасибо Wolsh! И вправду, когда заменял большую "С" на маленькую, стояла русская раскладка)))
Исправил. Ошибок больше не выдаёт, но на сцене кнопка не отображается.Хотя в классе Main присутсвует метод addChild.
Выше вы здесь писали:
Цитата:
Я тоже себе отвечу: нет addChild(), потому что SimpleButton не контейнер.
Я так понял мне следует заменить SimpleButton на Button, т.е. прописать в флеш библиотеке у символа кнопки с классом BuildVertical, в строке Base Class flash.display.Button (если я правильно ввел имя этого класса)))

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

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

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


 


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


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