PDA

Просмотр полной версии : В конструкторе нельзя выполнить некоторые действия


Волгоградец
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
Волгоградец, а вы понимаете, что означают параметры в 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, я упорно читаю хэлп. Если вы дадите ссылку, где описывается пример, применимый к моему вопросу, я перед вами извинюсь и признаю себя полнейшим ламером.

iNils
23.01.2008, 13:26
http://flash-mx.ru/help/Help/ActionScriptLangRef/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, спасибо, ты лучший на свете модератор.