Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   В конструкторе нельзя выполнить некоторые действия (http://www.flasher.ru/forum/showthread.php?t=106949)

Волгоградец 22.01.2008 15:14

В конструкторе нельзя выполнить некоторые действия
 
Здравствуйте! Прошу помочь мне разобраться. Почему в конструкторе класса нельзя создать некоторые действия, которые можно было создать при написании в кадре. Например пишу:
Код:

Class ClassA {
  function ClassA ():Void{
      _root.attachMovie ("mc", "mc", 0);
  }
}

Ругается...

Fernando Costa 22.01.2008 16:01

странно, должно работать
Код:

var cl:ClassA = new ClassA()
Class ClassA {
  function ClassA() {
      _root.attachMovie ("mc", "mc", 0);
  }
}


CrazyFlasher 22.01.2008 16:27

Class пишется с маленькой буквы

Fernando Costa 22.01.2008 16:30

каюсь, не заметил

Волгоградец 22.01.2008 23:52

Ах, да. Class с большой буквы - это я описался. А вот насчет конструктора нипанятнооо - ведь я поставил Void - нет возвращаемого значения, а компилятор выдавал ошибку поэтому... И еще вопросик, если позволите:
Код:

class Ball {
        private var _mc:MovieClip;
        function Ball (mc:MovieClip){
                _mc = mc;
                _root.attachMovie("_mc", "ball", 0, {_x: 275, _y: 200});
        }
}

В .fla файле пишу:
Код:

var obj:Ball = new Ball(ball);
При запуске клипа на сцене нет, хотя если явно указать его имя - _root.attachMovie("ball", "ball", 0, {_x: 275, _y: 200}) - то работает...

etc 23.01.2008 01:14

Волгоградец, а вы понимаете, что означают параметры в attachMovie и к каким клипам его нужно применять в вашем случае?

wvxvw 23.01.2008 02:00

Если в библиотеке есть клип с линкедж айди "_mc", то он и появится на сцене, если нет - то ничего не появится.

Волгоградец 23.01.2008 11:56

Цитата:

Сообщение от __etc
Волгоградец, а вы понимаете, что означают параметры в attachMovie и к каким клипам его нужно применять в вашем случае?

Ну если не получается, то значит не совсем понимаю. Поэтому и попросил помочь разобраться.
У меня в библиотеке клип ball. Как при создании нового экземпляра класса заставить этот клип появиться на сцене: var obj:Ball = new Ball(ball) - что нужно прописать в конструкторе?

CrazyFlasher 23.01.2008 12:29

Код:

class Ball {
        public function Ball (linkName:String, target:MovieClip){
                target.attachMovie(linkName, "ball", 0, {_x: 275, _y: 200});
        }
}

Код:

//this - мувик, куда аттачим...в данном случае this == _root
var obj:Ball = new Ball("ball", this);


Волгоградец 23.01.2008 12:35

Спасибо, CrazyFlasher, в очередной раз помог... Оказывается все дело в неправильных кавычках.

etc 23.01.2008 12:39

Все дело не в кавычках, а в том, что вы упорно не хотите читать хелп. Там и примеры и все, что требуется.

CrazyFlasher 23.01.2008 12:45

дело не в кавычках...просто вы зачем-то передавали не существуйщий мувиклип, а надо было передавать linkage мувиклипа, который вы хотите аттачить...поэтому и в кавычках, т.к. относится к типу String а не MovieClip

Волгоградец 23.01.2008 13:04

Цитата:

Сообщение от __etc
Все дело не в кавычках, а в том, что вы упорно не хотите читать хелп. Там и примеры и все, что требуется.

__etc, я упорно читаю хэлп. Если вы дадите ссылку, где описывается пример, применимый к моему вопросу, я перед вами извинюсь и признаю себя полнейшим ламером.

iNils 23.01.2008 13:26

http://flash-mx.ru/help/Help/ActionS.../00001487.html

Цитата:

Сообщение от Волгоградец
А вот насчет конструктора нипанятнооо - ведь я поставил Void - нет возвращаемого значения, а компилятор выдавал ошибку поэтому...

Функции-конструкторы не должны содержать возращаемый тип.

etc 23.01.2008 13:37

Цитата:

Сообщение от Волгоградец
__etc, я упорно читаю хэлп. Если вы дадите ссылку, где описывается пример, применимый к моему вопросу, я перед вами извинюсь и признаю себя полнейшим ламером.

http://livedocs.adobe.com/flash/9.0/main/00001894.html

Волгоградец 23.01.2008 14:15

Черт, вот этого я никак не ожидал... Это ведь я знал...
Многоуважаемый __etc, вы правы, простите, что докучал вам своими абсолютно ламерскими вопросами. Впредь, прежде чем задать вопрос, обязуюсь тщательно изучить хэлп и воспользоваться поиском на форуме.
iNils, спасибо, ты лучший на свете модератор.


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

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