Здрава всем.
Народ я новичок а AS 3 и у меня возникли несколько вопросов которые мешают идти дальше , просто появились некоторые недопонимания в ходе обучения , и если Вы не против то разрешите изложиться.
1.
This, да банальное this, его я вижу часто но сам не использую.
Как я понимаю this – это ссылка на объект и смотря где он пишется .
Наверное я сам отвечу на вопрос ну или Вы меня поправите на примере:
То есть:

Код AS3:
package
{
public class MyClass
{
private var Name:String = "hi";
public function MyClass()
{
this.x += 100;
this.Name;
addChild(this);
}
}
}
и

Код AS3:
package
{
public class MyClass
{
private var Name:String = "hi";
public function MyClass()
{
MyClass.x += 100;
MyClass.Name;
addChild(MyClass);
}
}
}

это одно и тоже так ведь, если нет то поправьте меня.
2.
Теперь о «super ()» . Как пишется в helpe инструкция super - вызывает суперклассовую или родительскую версию метода или конструктора, например:

Код AS3:
Super () // Вызывает родительскую версию конструктора;
Super.method(“HI”) // Вызывает родительскую версию метода;
Super.prop // Вызывает родительскую версию свойства или такого не бывает ?
Если все не так то поправьте меня.
3.
Оператор “as” – он меня больше всех пугает. Как я понимаю интерпретатор проверяет нет ли у первого операнда (тип: Sprite) таких же свойств и методов как у и второго операнда (тип: MovieClip) и если таковой есть то Sprite может быть как и MovieClip так и Sprite то есть я могу использовать некоторые методы и свойства MovieClip для объекта Sprite(который уже movieclip) и наоборот.
4.
Обращение к объектам и символам. Здесь я затрудняюсь разобраться , сейчас поясню на примере:
Допустим имеется класс “B” в конструкторе которой будет для примера Кнопка и Мувик.

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.SimpleButton;
public class B extends Sprite
{
public var _btn:SimpleButton = Btn; // Кнопка и мувик уже перенесенные из библиотеки на сцену
public var _star:MovieClip = Star; // в ручную , имена написал в свойствах не в свойтвах символа
public function B()
{
_btn.x += 100;
_btn.addEventListener(MouseEvent.CLICK,onBtn);
}
public function onBtn(e:MouseEvent)
{
trace("HI");
}
}
}
и класс “A” где и создается объект “B”

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class A extends Sprite
{
private var _A:B;
public function A();
{
_A = new B();
addChild(_A);
}
}
}
Цитата:
Выходит ошибка:
Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at B
|
А так робит корректно:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.SimpleButton;
public class A extends Sprite
{
public var _btn:SimpleButton = Btn;
public var _star:MovieClip = Star;
public function A()
{
_btn.x += 100;
_btn.addEventListener(MouseEvent.CLICK,onBtn);
}
public function onBtn(e:MouseEvent)
{
trace("HI");
}
}
}
не пойму почему.