Показать сообщение отдельно
Старый 07.11.2008, 19:40
AS3noob вне форума Посмотреть профиль Отправить личное сообщение для AS3noob Найти все сообщения от AS3noob
  № 18  
Ответить с цитированием
AS3noob

Регистрация: Nov 2008
Сообщений: 14
Спасибо за мнения, друзья!

А вот подскажите еще почему происходит такое чудо:
1. делаю клип
2. в 5м кадре - ключ, текстовое поле tf, типа инпут, бордюр, начальное значение dsfg. Там же - квадрат, конверт в клип, имя bb
3. в 10м кадре - f5
4. Клип линкейджу, класс test.
Код:
package  { 
		import flash.display.MovieClip; 
		import flash.text.TextField;
		import flash.events.*;
		public class test extends MovieClip { 
			public function test() { 
					addEventListener(Event.ENTER_FRAME, Update);
			}
			public function Update(eprst:Event) { 
				trace (bb)
				trace (tf)
				trace (tf.text)
				tf.text += "q";
			}
		}
}
И что вы думаете?
Сначала печатает
null
null
TypeError: Error #1009: Cannot access a property or method of a null object reference.
несколько раз, все логично
Потом
[object MovieClip]
[object TextField]
dsfg
[object MovieClip]
[object TextField]
dsfgq
и так далее, притом даже когда клип перехлестнулся в начало и поля (клипа bb) как бы не было.

Наблюдение раз - когда визуалки поля не стало, объект класса все равно существует и свойства его доступны. Кашмар! Это не просто "не по-as2шному", это просто не по-человечески... Исходя из логики - если есть возможность создать объект без new руками, почему он не умирает из тех же соображений?
Наблюдение два - и где же movieClip нединамический класс?

Продолжаю тест, в 10м - f7, в 15м - f5

Сначала объекта нет, потом есть, потом нет, т.е. пустой ключ все-таки убивает объекты слоя... При авто-переходе же в начало клипа - не убивает.