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

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

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
По умолчанию Странное поведение класса AS 2.0

Вобщем делаю класс консоли удаленной отладки
В первом кадре абсолютно пустого фильма ввожу
Код:
_root.c=new Console();
//или просто new Console();
Но почему в руте появляется объект с именем "Console"?!
Не, в глобале как положено - _global.Console - [type Function]
a этот - [type Object] и идентичен _root.c (по крайней мере судя по его полям)
Ведь в классе кроме его названия и конструктора литерала Console вобще нет! (есть только в другом регистре - "console")
Вот исходник:
cons.zip
Код не могу привести - длинный очень


Последний раз редактировалось expl; 30.09.2006 в 15:18.
Старый 30.09.2006, 00:09
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Выложи код на другом сервере, narod ру за границей грузится на скорости от 20 байт до 2 килобайт, мне везет у меня 30 байт.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.09.2006, 00:15
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 3  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Спасибо iNils'у за исходник.

А насчет консоли не понял в чем проблема?
Код:
var console:Console = new Console();
trace(console)//[object Object]
trace(_global.Console)//[type Function]
все верно, в руте у тебя лежит экземпляр класса Console, который является объектом.
А в глобале у тебя хранится функция, которая фактически эмулирует классы в ActionScript 1-2
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.09.2006, 00:29
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
вот этот кусок
Код:
this.listConsole={
			onKeyDown:function() {
				if(Key.getCode()==Key.ENTER){
					this.console.run(); 
					Selection.setFocus(this.console.lines);
					Selection.setSelection(this.console.lines.text.length, this.console.lines.text.length);
				}
			},
			console:this
		}
стоит заменить на
Код:
this.listConsole = new Object()
			 listConsole.onKeyDown = function ():Void
			 {
				if(Key.getCode()==Key.ENTER)
				{
					this.console.run(); 
					Selection.setFocus(this.console.lines);
					Selection.setSelection(this.console.lines.text.length, this.console.lines.text.length);
				}
			 }
			 listConsole.console = this
так во первых читабильней, во вторых строка
Код:
console:Console = this
не является валидной..можно либо
Код:
console = this
//или
var console:Console = this
Далее не инициализируйте свойства классов вне методов, не забывайте что AS2 это надстройка над прототипной моделью, и такие свойства автоматом становятся недо-статическими, тоесть измените его в одном экземпляре, и все экземляры "почувствуют" это.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Sep 2002
Сообщений: 30,784
Я бы посоветовал запихнуть данный класс в FDT и посмотреть, какое количество ошибок он выведет.

Старый 30.09.2006, 01:03
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 6  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
Я бы посоветовал запихнуть данный класс в FDT и посмотреть, какое количество ошибок он выведет.
я сначала через мтаск хотел откомпилить в Flash Develop, отказался компилировать это
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.09.2006, 13:04
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
все верно, в руте у тебя лежит экземпляр класса Console, который является объектом.
А в глобале у тебя хранится функция, которая фактически эмулирует классы в ActionScript 1-2
Эт все понятно, но у меня еще третий объект появляется (впринципе это проблем не создает, но неприятно как-то):
Код:
var console:Console = new Console();
trace(console)//[object Object]
trace(_global.Console)//[type Function]
trace(_root.Console)//[object Object] - это то откуда?
P.S. А за советы спасибо, потомучто первый раз AS 2.0 юзаю, еще не втянулся

Старый 30.09.2006, 13:55
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Выложи код на другом сервере, narod ру за границей грузится на скорости от 20 байт до 2 килобайт, мне везет у меня 30 байт.
Сочуствую =(, но после форматирования у меня не конектится с hut.ru (страничка вобще автономной стала) Новый домен делать или искать сайты, занимающиеся ахривами, не хотца
Но, к следующему разу, если буду что выкладывать, разберусь

Старый 30.09.2006, 15:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Зипы (правда с ограничением по весу) можно выкладывать прямо в текст сообщения.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2002
Сообщений: 30,784
expl, значит у тебя в коде где-то встречается _root.Console

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

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

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


 


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


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