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

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

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

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

Начинаю изучать Flex b AS и возникла такая проблемкаmxml не видит класс который находится в as файле.
Создаю проэкт, в проэкте 2 файла: trainingProject.mxml и myClass.as, их содержание выложил ниже
trainingProject.mxml :
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
	<![CDATA[
  import modifyDG;
  
  private function init():void
  {
  	var btn:modifyDG = new modifyDG();
  }
	]]>
</mx:Script>
</mx:Application>
myClass.as :
Код:
package
{
	import mx.core.UIComponent;
	
	public class myClass extends UIComponent
	{
              public function myClass()
             {
              var button:Button = new Button();
              this.addChild(button);
  	
              }
        }
}
в результате должна быть отображена кнопка, также если бы я написал:
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
	<![CDATA[
    
  private function init():void
  {
  	var button:Button = new Button();
  	this.addChild(button);
  }
	]]>
</mx:Script>
</mx:Application>
делал и по-другому
trainingProject.mxml :
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:myComp="myComponents.*">

<myComp:myClass />

</mx:Application>
myClass.as :
Код:
package myComponents
{
	import mx.core.UIComponent;
	
	public class myClass extends UIComponent
	{
              public function myClass()
             {
              button.label("i am a button");
  	     }
        }
}
выдает ошибку:
Severity and Description Path Resource Location Creation Time Id
Could not resolve <myComp:myClass> to a component implementation. trainingProject/src trainingProject.mxml Unknown 1263809815075 1110

Подскажите, что неправильно делаю и какая запиь будет лучше??

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

Регистрация: Feb 2009
Адрес: Харьков
Сообщений: 51
не совсем понятно, что вы хотите сделать?

Старый 19.01.2010, 00:21
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 3  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
Вообще-то цель стоит создать интерфейс динамичесски, при помощи actionscript 3

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

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Во-первых, расширять УИКомпонент не так просто, как, например, MovieClip. Добавлять детей в него нужно, перекрывая его защищенную функцию. И он сам решит когда их добавлять.
Во-вторых, вот это: var btn:modifyDG = new modifyDG(); не добавляет кнопку в дисплейЛист. Это только создает объект в памяти и ставит на него указатель. Чтоб кнопка добавилась в дисплейЛист, надо тоже сделать addChild().
__________________
Jedem das Seine

Старый 19.01.2010, 15:43
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 5  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
да, в public function myClass() делал addChild(), объект тоже не отображается..=(

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Всё работает. Задайте размеры кнопки, вы её просто не видите (1x1px):
Код AS3:
package
{
	import mx.controls.Button;
	import mx.core.UIComponent;
 
	public class MyClass extends UIComponent
	{
		public function MyClass()
		{
			var button:Button = new Button();
			button.width = 100;
			button.height = 100;
			this.addChild(button);
		}
	}
}
__________________
2+2=5

Старый 19.01.2010, 17:32
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 7  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
В том то и дело, если это пишу в самом теле mxml, то все работает, а если делаю это через класс в actionscrip, не выходит. Да, и размеры не обязательно задавать, он по умолчанию рисует кнопку минимального размера. Тут дело в классе, или не правильно обращаюсь, или объявляю, но компилятор не указывает об ошибках.

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
don_Lino: Ну наследуйтесь не от UIComponent, зачем мучаться. Наследуйтесь там от канваса допустим, если хотите чтоб заработало как вы хотите просто.
Код AS3:
package
{
	import mx.containers.Canvas;
	import mx.controls.Button;
 
	public class MyCanvas extends Canvas
	{
		public function MyCanvas()
		{
			var button:Button = new Button();
			this.addChild(button);
		}
	}
}
__________________
2+2=5

Старый 19.01.2010, 18:36
don_Lino вне форума Посмотреть профиль Отправить личное сообщение для don_Lino Найти все сообщения от don_Lino
  № 9  
Ответить с цитированием
don_Lino

Регистрация: Jan 2010
Сообщений: 13
увы, но не проходит фокус.. =( думаю дальше..

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Цитата:
Сообщение от don_Lino Посмотреть сообщение
увы, но не проходит фокус.. =( думаю дальше..
Как не проходит?) Всё работает, сам попробовал.
__________________
2+2=5

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

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

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


 


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


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