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

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

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

Регистрация: Dec 2008
Сообщений: 67
По умолчанию Как добраться до конструктора класса нового MovieClip

Здравствуйте!

Нарисовал MovieClip "Test" и добавил его в библиотеку
Задал свойства MovieClip такие как: Export for ActionScript;
Дал имя классу по имени MovieClip - Test
Теперь могу из ActionScript создавать экземпляры MovieClip "Test"
Код AS3:
var obj = new Test();
Вопрос, созданный класс Test как бы пустой, он не имеет конструктора и методов, а я хотел бы их добавлять. Пробывал создавать в ActionScript class с созвучным именем Test, но при этом компилятор "крошиться". Ошибки вылазеют. Помогите советом. ActionScript3

Старый 16.12.2008, 17:24
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
А какие ошибки?

Старый 16.12.2008, 17:31
petav вне форума Посмотреть профиль Отправить личное сообщение для petav Найти все сообщения от petav
  № 3  
Ответить с цитированием
petav

Регистрация: Dec 2008
Сообщений: 67
1061: Call to a possibly undefined method addEventListener through a reference with static type drag.as$9:test.

И все в этом духе, но это ошибки вверху по коду которые исчезнут после того как я к примеру класс test d test2 переименую

Старый 16.12.2008, 17:33
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Здесь нет телепатов.
Кто знает что Вы там написали.
Показывайте код.

Старый 16.12.2008, 17:38
petav вне форума Посмотреть профиль Отправить личное сообщение для petav Найти все сообщения от petav
  № 5  
Ответить с цитированием
petav

Регистрация: Dec 2008
Сообщений: 67
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.events.SecurityErrorEvent;
	import flash.events.NetStatusEvent;
	import flash.events.ActivityEvent;
 
	public class drag extends MovieClip	{
		var connection:NetConnection;
 
		public function drag ()	{
			trace('Ok');
			circle_mc.addEventListener(MouseEvent.MOUSE_UP, onMOUSE_UP);
			circle_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMOUSE_DOWN);
			addButton.addEventListener(MouseEvent.CLICK, onMOUSE_CLICK);
 
			connection = new NetConnection();
			connection.addEventListener(NetStatusEvent.NET_STATUS, onNET_STATUS);
			connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSECURITY_ERROR);
			connection.connect('rtmp://telecon.petav/room');
		}
 
		private function onMOUSE_DOWN(event:Event):void {
			trace('MOUSE_DOWN');
			event.target.startDrag(true);
		}
 
		private function onMOUSE_UP(event:Event):void {
			trace('onMOUSE_UP');
			event.target.stopDrag();
		}
 
		private function onMOUSE_CLICK(event:Event):void {
			trace('12');
			//Новый объект MovieClip
			var r = new test();
			r.x = 120;
			r.y = 150;
			addChild(r);
		}
 
		function onNET_STATUS(event:NetStatusEvent):void {
			switch (event.info.code) {
				case "NetConnection.Connect.Success":					
					var stream:NetStream = new NetStream(connection);
					stream.addEventListener(NetStatusEvent.NET_STATUS, onNET_STATUS);
					stream.client = this;
					circle_mc.video1.attachNetStream(stream);
					stream.play('123');			
					break;
				case "NetStream.Play.StreamNotFound":
					trace("Stream not found");
					break;
			}
		}
 
		function onSECURITY_ERROR(event:SecurityErrorEvent):void {
			trace("onSECURITY_ERROR: " + event);
		}
 
		public function onBWDone():void	{}
	}	
}
 
class test {
	public function test(){
		trace('Я работаю');
	}
}
Добавлено через 4 минуты
здесь код переешан, я только заметил надо было лишнее вырезать.

Добавлено через 6 минут
Код AS3:
class test {
	public function test(){
		trace('Я работаю');
	}
}
я так понимаю вот здесь ошибка, в этом коде. Потому как меняю тест на тест2 все работать начинает. Как добавиться что-то в конструктор test созданного из movieclip хз.

Старый 16.12.2008, 18:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А зачем вы создаете вложенный класс внутри drag? И кто вас так научил называть классы?

Старый 16.12.2008, 21:23
petav вне форума Посмотреть профиль Отправить личное сообщение для petav Найти все сообщения от petav
  № 7  
Ответить с цитированием
petav

Регистрация: Dec 2008
Сообщений: 67
Я не создаю класс внутри класса, это раз. Посмотрите внимательней второй класс находиться за пределами пакета, что разрешаеться AS3.

И какая разница как я назвал класс, изначально я тестировал перетаскивание объекта потом другое. Этот код создан не для конечного пользователя, а для отработки тех или иных действий во Flash

И, в третьих не тратье свое и моё время. Если есть что сказать конкретно по поставленному мной вопросу, очень прошу это сделать.

Добавлено через 5 минут


Вот ответ на вопрос который я задал на форуме http://xpoint.ru/forums/internet/fla...ad/43590.xhtml

Цитата:
1) Поскольку у вас AS3 всё очень просто.
2) Создаёте MovieClip, в свойствах его указываете имя класса, например "apetrov.MyFirstClass".
3)Рядом с fla-файлом (или по другому пути, указанному в "Source Path") создайте папку "apetrov"
4) В этой папке создайте файл с именем "MyFirstClass.as" примерно с таким содержанием:
Код AS3:
package apetrov
{
   import flash.display.MovieClip;
 
   public class MyFirstClass extends MovieClip
   {
 
      function MyFirstClass()
      {
         trace('Is constructor')
      }
 
      public function myFirstMethod():void
      {
         trace('My method')
      }
 
   }
}


Последний раз редактировалось petav; 17.12.2008 в 11:09.
Старый 16.12.2008, 23:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от petav Посмотреть сообщение
Я не создаю класс внутри класса, это раз. Посмотрите внимательней второй класс находиться за пределами пакета, что разрешаеться AS3.
Я понимаю. Вопрос был такой: зачем вы это делаете? Классы за пределами пакета в *.as-файле не подхватываются флешем.

Цитата:
Сообщение от petav Посмотреть сообщение
И какая разница как я назвал класс, изначально я тестировал перетаскивание объекта потом другое. Этот код создан не для конечного пользователя, а для отработки тех или иных действий во Flash
Дело в том, что ни один пример из хелпа или класс флешового фреймворка не научит называть классы со строчной буквы.

Цитата:
Сообщение от petav Посмотреть сообщение
И, в третьих не тратье свое и моё время. Если есть что сказать конкретно по поставленному мной вопросу, очень прошу это сделать.
А я вас очень прошу оформить код соответствующими тегами, пару раз вы это сделать не поленились, однако в последний раз почему-то забыли. У нас тут с этим строго, не заставляйте меня тратить своё время на плюсы.

Цитата:
Сообщение от petav Посмотреть сообщение
Вот ответ на мой вопрос
1)задал конкретный вопрос
2)получил конкретный ответ
Безусловно, потому что вас не спросили про ошибки, которые выдает компилятор, что, кстати, было резонным вопросом для выявления пути решения, потому как по вашему описанию всё прекрасно. А т. к. ошибки явно свидетельствовали о том, что что-то не так конкретно в вашем коде, вас и попросили привести код, в котором и был обнаружен internal-класс, о целесообразности создания которого я вас и спросил.
Но раз вас подобные вопросы не устраивают и они «тратят» ваше время, то извините.

з. Ы. А код лучше оформить. Чем раньше, тем лучше.

Старый 17.12.2008, 11:12
petav вне форума Посмотреть профиль Отправить личное сообщение для petav Найти все сообщения от petav
  № 9  
Ответить с цитированием
petav

Регистрация: Dec 2008
Сообщений: 67
Цитата:
Классы за пределами пакета в *.as-файле не подхватываются флешем.
Очень даже поддерживаются в ActionScript3
Цитата:
Дело в том, что ни один пример из хелпа или класс флешового фреймворка не научит называть классы со строчной буквы.
Это что важно

Старый 17.12.2008, 13:01
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от petav Посмотреть сообщение
Очень даже поддерживаются в ActionScript3
Тогда так напишу: не подхватываются в Flash IDE для присвоения кастомного класса клипу. Так понятнее?

Цитата:
Сообщение от petav Посмотреть сообщение
Это что важно
Это важно, либо вы играете по правилам языка, на котором пишете, либо просто турист. Да и, судя по отсутствию знака вопроса, да, это что важно.

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

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

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


 


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


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