Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Super.addChild видимо added не происходит (http://www.flasher.ru/forum/showthread.php?t=148725)

in4core 09.01.2011 19:07

Super.addChild видимо added не происходит
 
Такой вот пример :
Есть Main класс и есть некоторый класс SubClass extends Main.
Итак,

Код AS3:

public function gotoMaterials() {
    trace(super.numChildren); // 1
    var sh:Shape = new Shape();
    sh.graphics.beginFill(0xFFFFFF);
    sh.graphics.drawRect(0, 0, 100, 100);
    sh.graphics.endFill();
    sh.x = 300;
    super.addChild(sh);
    trace(super.numChildren); // 2
}

Но на сцене не появляется. С чем это связано?

iNils 09.01.2011 19:20

У меня вопрос по оформлению. Очень сложно убрать лишнею табуляцию перед отправкой сообщения?

Наверно потому, что создается sh, а добавляется tf?

in4core 09.01.2011 19:22

Сорри там sh это я тут описался когда добавлял. Так что вопрос открыт

alatar 09.01.2011 19:26

У вас фон случаем не белый?

samana 09.01.2011 19:28

А где создан SubClass? Ведь не получится создать экземпляр SubClass который extends Main , в Main классе.

in4core 09.01.2011 19:31

Фон случаем не белый.

Там большая стурктура. В Main создается экземпляры класса кнопок, при нажатии на кнопку ( внутри класса кнопки) создается экземпляр того самого SubClass который extends Main и из него уже как я описал выше идет super.addChild

iNils 09.01.2011 19:32

Цитата:

Сообщение от in4core (Сообщение 963130)
Сорри там sh это я тут описался когда добавлял. Так что вопрос открыт

А табуляцию поправить сложно?

in4core 09.01.2011 19:36

Инилс я вроде поправил, может быть я не понял о чем ты ((

alatar 09.01.2011 19:41

Цитата:

В Main создается экземпляры класса кнопок, при нажатии на кнопку ( внутри класса кнопки) создается экземпляр того самого SubClass который extends Main и из него уже как я описал выше идет super.addChild
И вы конечно решили, что sh добавится в Main, а не в SubClass?
Цитата:

Инилс я вроде поправил, может быть я не понял о чем ты ((
Имелось ввиду поправить отступы в коде
Код AS3:

trace(super.numChildren) // 1
var sh:Shape = new Shape()


in4core 09.01.2011 19:49

Ну конечно же я так решил, ведь addChild то делается для Main !!! Да и вообще в трейсах я показал что элемент на Main добавляется, тока его не видно чей то

alatar 09.01.2011 19:53

В трейсах видно, что ребенок добавился к экземпляру SubClass используя реализацию метота addChild суперкласса. К экземпляру класса Main это отношения не имеет.

samana 09.01.2011 19:55

Так вроде метод super это не ссылка на "родителя" класса, а вызов его методов для класса который его расширяет. Ведь вы можете создать только расширяющий класс, без создания основного (которым он был расширен). И как тогда вы можете добавить addChild в базовый класс, который и не создан в приложении?
То есть, если вы создаёте класс Holder расширяющих класс Sprite и вызываете метод addChild(child) в нём, то child добавляется ведь к Holder, а не к Sprite.

in4core 09.01.2011 20:11

ну я же вызываю не метод addChild, а вызываю метод super.addChild а это разные вещи, не ?

Тоесть по вашему

Код AS3:

class Holder extends Sprite
 
  addChild(someClip)  === super.addChild(someClip)

да ?

alatar 09.01.2011 20:12

Если метод не переопределен (override) в Holder, то да.

cleptoman 09.01.2011 22:35

super.someMethod - это обращение к методу определенном в родителе, а не к родителю с его методом..короче - не путайте эти штуки.

dimarik 09.01.2011 23:49

Цитата:

Сообщение от iNils (Сообщение 963136)
А табуляцию поправить сложно?

Я поправил =)

Добавлено через 1 минуту
Цитата:

Сообщение от in4core (Сообщение 963148)
ну я же вызываю не метод addChild, а вызываю метод super.addChild а это разные вещи, не ?

Тоесть по вашему

Код AS3:

class Holder extends Sprite
 
  addChild(someClip)  === super.addChild(someClip)

да ?

А в чем там проблема?
Код AS3:

trace( addChild === super.addChild );



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

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