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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
zackscript, всё не так. Класс - это не объект.
this - обращение к объекту(экземпляру класса).
Экземпляр класса - это то, что создаётся через new.
Каждый раз, когда вы создаёте экземпляр класса Tank - это будет новый танк, не тот, что был раньше.
MyClass.smth - обращение к статическому свойству.
as - приведение типа, проверяет, есть ли в цепочке наследования определённый тип, и если есть, возвращает объект с таким типом, он не проверяет свойства, а лишь цепочку наследования.
this/super пишется лауэркейсом.
1)
Код AS3:
package 
{
	public class MyClass extends Sprite//у вас ошибка, нет у вашего класса свойства свойства x, а вот так всё ок
	{
		private var Name:String = "hi";
		public function MyClass()
		{
			this.x +=  100;
			this.Name;
			//addChild(this); - это непонятная фигня, добавление себя в себя (идентично this.addChild(this))
		}
	}
}
идентично
Код AS3:
package 
{
	public class MyClass extends Sprite
	{
		private var Name:String = "hi";
		public function MyClass()
		{
			x +=  100;
			Name;
		}
	}
}
Приставки this. и super. - необязательны, их можно опустить.
2)
Неправильно. super всегда пишется лауэркейсом. Во-первых, так красиво, во-вторых, это работает.
Код AS3:
super () // Вызывает родительскую версию конструктора;
super.method(“HI”) // Вызывает родительскую версию метода;
super.prop // Вызывает родительскую версию свойства или такого не бывает ?
3)
MovieClip as Sprite работает потому, что MovieClip наследуется от Sprite.

Sprite as MovieClip работать не будет.

4)
Цитата:
Допустим имеется класс “B” в конструкторе которой будет для примера Кнопка и Мувик.
В вашем коде кнопка и мувик не в конструкторе, а в свойствах экземпляра.
Код AS3:
public function B()
		{
			_btn.x +=  100;
			_btn.addEventListener(MouseEvent.CLICK,onBtn);
		}
Вот это - конструктор, не путайте его ни с чем другим.
Цитата:
Выходит ошибка:
Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at useBtn
Не вижу в коде функции useBtn.

Цитата:
не пойму почему.
Вероятно, класс A присобачен к мувику, в котором расположены Btn и Star, а B - нет.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 04.01.2016 в 16:48.