Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   super method не хочет выводить текст (http://www.flasher.ru/forum/showthread.php?t=145599)

in4core 13.10.2010 21:53

Tyger это все и так понятно. С этим проблем у меня нет. В трейсе все как раз выводится верно. А вот на сцене изменений нет. Потому что я видимо обращаюсь НЕ к созданному экземпляру. Выше я описал ТАК как написано у меня, ну схематично конечно. Трейс там работает и причем текст в трейсе меняется, а вот на дисплее - фигу

Psycho Tiger 13.10.2010 22:03

in4coze, Вы создаёте 2 экземпляра, но скорее всего Вам нужен один, который унаследованный.

zuxul 13.10.2010 22:47

У вас случайно там не играющий мувиклип?

alatar 13.10.2010 23:55

Насколько я понял вам надо сделать так:
Код AS3:

class Main() {
 var _clip = new Clip(); //экземпляр вашего Clip
  public function Main() {
        addChild(_clip); //добавляем на сцену
        _clip.setText("some text"); //меняете текст
    }
}

Класс sub, в данном случае, вам вообще не нужен.

in4core 14.10.2010 00:19

Да нет же блин. Все так просто это понятно.

Задача : клип с 5 текстовыми полями, в которых отображаются разные значения.
Отдельно Класс занимающийся переименованием значений полей клипа. Все два класса должны включаться в Main классе.

Смысл такой, что тот клип имеет глобальные настройки такие как громкость звука, язык интерфейса и т.д. Вот и нужно сделать отдельный класс который будет заниматься настройками только. Менять громкость и прочее. Пока проблем не возникло все подключил все ок. А вот текст не переименовывается через super хоть убей.

Я не знаю поможет ли это, но вот код мой уже
Код AS3:

// Main
public class Main extends Sprite() {
var sbox;
public function Main() {
createSettingsBox()  ;
setCommunications() ;
                              }
private function createSettingsBox():void {
                        sbox = new settingsBox();  // это наш клип
                        addChild(sbox);
}
private function setCommunications() {
                        var che:settingsChecker = new settingsChecker(settings_array)
                        // а вот класс с настройками для клипа,  где массив settings_array это кнопки, ну это думаю не важно, там проблем нет
                }
}

Код AS3:

// SettingsBox
 
public class settingsBox extends MovieClip {
public function settingsBox():void { }
public function setTrack(t1:String) {
                        track.text = t1;
                }
}

Код AS3:

// checker
public class settingsChecker extends settingsBox{
public function settingsChecker(array:Array) {
  /* поехали
  super.setTrack('555') // trace дает все верно, на сцене эффекта 0
  или
  просто  setTrack('555')  аналогично .  КАК НАПИСАТЬ ТО НАДО? что никто не знает?
  */

}

Добавлено через 4 минуты
Проще поясните могу ли Я изменять свойства класса SettingsBox из последнего класса. Так как написано у меня. Если НЕТ то буду думать другую структуру. Спасибо

iCluster 14.10.2010 02:14

alatar был прав в 14 посте, вам не надо наследоваться от settingsBox, имхо нет смысла, взаимодействуйте с текстовыми полями через sbox.setText(text); думаю другая структура - это действительно выход.

in4core 14.10.2010 02:21

Пришлось поменять структуру . Ну да ладно. просто нелюблю оставлять недопонятые поменты. В будущем пригодится вдруг, а нате незнаю. Не всегда же нужно искать другую структуру. В данном случае, конечно друга струтура вышла в 100% приятнее, все в одном классе поместилось. а в main его креплю и все.

iCluster 14.10.2010 02:28

Если сами начинаете путаться в своем коде - первый признак, что по нему плачет рефакторинг :)

in4core 14.10.2010 02:30

))) я в в своем коде не путаюсь.

cleptoman 14.10.2010 09:31

почитайте про наследование..вы просто путаетесь в понятиях.
вызывая super.someMethod вы не вызываете метод экземпляра родителя "где-то там". вы вызываете метод экземпляра унаследованного класса, но работает по родительской логике...

млин..чота я подзакипаю )


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

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