PDA

Просмотр полной версии : Из рута в класс


Psycho Tiger
19.04.2006, 17:18
Всем привет
Сразу к делу:
Через либрари я назначаю клипу my_mc класс my_class
Далее в сцене:
attachMovie("my_mc","my_mc",1);
my_mc.my_var="hello";

в классе

class my_class extends MovieClip{
private var wow=this.my_var;
function my_class(){
trace(wow);
}
}

На што собстно, выдает "свойство my var не найдено" или што то подобное.
Подскажите пожалуйста, в чем здесь ошибка или как по другому передать значение переменой
из рута в класс? :umnik2:

Sneg
19.04.2006, 18:16
Cделай в классе set'er этой переменной и присвой ей значение.

class my_class extends MovieClip{
private var wow;
public function my_class(){

}
public function set wow(newWOW):Void{wow=newWOW}
public function get wow(){return wow}
}


Код в руте:
var my_mc:MovieClip=attachMovie("my_mc","my_mc",1);
my_mc.wow="hello";
trace(my_mc.wow);

Psycho Tiger
20.04.2006, 09:37
И што имеем?

class my_class extends MovieClip{
private var wow;
public function my_class(){
getwow();
}
public function setwow(newWOW):Void{wow=newWOW}
public function getwow(){return wow}
}


Код в руте вова есть, а трайс нам возвращает пустоту -- ибо гражданин не определена переменая.
Вызывать через метод тоже не получаетца - какие то глюки происходят.

var my_mc:MovieClip=attachMovie("my_mc","my_mc",1);
this.onEnterFrame=function(){
my_mc.setwow("po");
my_mc.getwow("po");
}

опять таки пустота.
И через функции тоже неудобно получаетца - в каждой функции нужна своя переменная заново определеная, т.е. переменная должна быть определена в классе.. хоть _global используй....

AxelRB
20.04.2006, 10:00
Товарищ! Вы Ctrl+C знаете?
Вам же желтым по серому написали set wow, а не setwow.
И вообще для начала стоит весь хелп по классам прочитать. Там ничего супер-заумного нет.

AxelRB
20.04.2006, 10:08
Короче, имеем код:
(в классе)

class my_class extends MovieClip {
private var __wow:String;
public function set wow(s:String) {__wow = s;}
public function get wow():String {return __wow;}
public function my_class() {
trace(__wow);
}
}


(В руте)

var my_mc:MovieClip = attachMovie("my_mc", "my_mc", getNextHighestDepth());
my_mc.wow = "hello";
trace(my_mc.wow);


В аутпуте имеем:

undefined
hello

ибо при создании класса __wow не инициализирована, и только второй трейс нас спасает.

Psycho Tiger
20.04.2006, 12:19
О как офицально! Он мне просто ероры выдавал в аутпут я подумал человек ненароком поставил пробел в имени функции. А хэлп я читал читаю и буду читать. Но хелп не умеет говорить. Потому я сюда прихожу и спрашиваю :) но прежде канешно поиском прохожусь

Пасибки всем. Пошел зырить

Psycho Tiger
20.04.2006, 12:30
кста, команду ctrl+c знаю, ща изучаю ctrl+v

а если серьезно то работает! сенькс!
как я понял функции сида set xxx и get xxx вызваютца самостоятельно и параметр у них - значение етой пременной. Вуху!

Sneg
20.04.2006, 15:29
Конечно работает, просто нужно внимательно переписывать код прежде чем делать писать "и што..."

Psycho Tiger
20.04.2006, 19:04
Конечно работает, просто нужно внимательно переписывать код прежде чем делать писать "и што..."
я использую ctrl+c :^)
просто мне бежать надо было а у мну бац ерор - переменная определена дважды - ну я и подумал што нитакю. А пришел пост отправил и спааааааааааааааааааааааааааааааааааааааааааааааать