Просмотр полной версии : Из рута в класс
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:
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 используй....
Товарищ! Вы Ctrl+C знаете?
Вам же желтым по серому написали set wow, а не setwow.
И вообще для начала стоит весь хелп по классам прочитать. Там ничего супер-заумного нет.
Короче, имеем код:
(в классе)
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 вызваютца самостоятельно и параметр у них - значение етой пременной. Вуху!
Конечно работает, просто нужно внимательно переписывать код прежде чем делать писать "и што..."
Psycho Tiger
20.04.2006, 19:04
Конечно работает, просто нужно внимательно переписывать код прежде чем делать писать "и што..."
я использую ctrl+c :^)
просто мне бежать надо было а у мну бац ерор - переменная определена дважды - ну я и подумал што нитакю. А пришел пост отправил и спааааааааааааааааааааааааааааааааааааааааааааааать
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.