PDA

Просмотр полной версии : как передать переменную из AS, написанного в фрэйме в класс?


Dorin123
20.11.2006, 02:52
Здравствуйте!
Подскажите пожалуйста, как мне передать значение переменной, из AS, написанного во фрейме, в переменную в класс, приаттаченный в библиотеке на символ?

Dorin123
20.11.2006, 11:31
на С++

class TMyClass
{
public:
int perem1;

void Myfunc(int perem2) //Передача через ф-цию
{
perem1=perem2;
}
}


void main()
{
TMyClass *MyClass = new TMyClass; //Обьявляем обьект класса\
MyClass->perem1=1212;

//Или через ф-цию
MyClass->MyFunc(1212);
}


Тоже самое на AS прокатит?

Dorin123
20.11.2006, 13:05
Создаю класс с именем B, в нем пишу:

class B extends MovieClip
{
public function B()
{
trace ('constructor B called');
super();
}
public function setAName(n:String):Void
{
super.name = n;
}
public function someFunction():Void
{
trace ('super.name is '+super.name);
super.traceMessage();
}
}

далее пишу во test.fla в первом врейме:

var inst:B = new B();
inst.setAName('bla');
inst.someFunction();


пишет в Output:

constructor B called
super.name is undefined
-------------------------------
почему undefined? должно быть bla...
в чем загвоздка?

Ps: Flash professional 8.0

Dorin123
20.11.2006, 13:20
даже если написать просто

class test extends MovieClip{
public static var tt:String; //без static ругаеться... выдает ошибку

public function ww2(){
super();
this.init();
}

private function init()
{
trace("tt");
}
}


во fla файле пишу:

var bb:String;
b="001";
test.tt=b;

etc
20.11.2006, 13:55
Потому что классы, расширяющие MovieClip, не могут создаваться через конструктор.

Dorin123
20.11.2006, 14:00
спасибо, разобрался уже :)

Dorin123
20.11.2006, 14:19
остаеться только малость непонятным как мне передать значение переменной из класса в другой класс..

etc
20.11.2006, 14:39
Создать экземпляр заданного класса в родительском классе и передать ему переменную.

Dorin123
20.11.2006, 18:12
class Connector extends XML
{
private var _game;
public var _name:String;
public var Url:String="";
public var extraParams:Object;
public var httpStatus;
public var httpStatusType;

public function Connector(game, name)
{
super();
this._game=game;
this._name=name;
this.extraParams=new Object();
trace("----"+_name);
this.ignoreWhite=true;
}



public function set Game(val){
this._game=val;
}

public function send(){
var url:String=this.Url+"?";
for(var param in this.extraParams){
url+=param.toString()+"="+extraParams[param]+"&";
};
_root._dbg_url.text=url;

trace(url);
this.load(url,this);
}



совсем в шоке и запутался, как мне переменую name засунуть в функцию send?

etc
20.11.2006, 18:16
В конструкторе:
…
this.send(name);
Метод:
public function send(name:String):Void {

Только вот не надо переопределять метод send у XML, переименуй в sendData, например.

Dorin123
20.11.2006, 18:17
спасибо

Dorin123
20.11.2006, 18:29
не пашет, если trace("tracing---"+_name); в функции сделать, пустую строку выводит :(
PS: переименовал в sendData

etc
20.11.2006, 19:57
Переименовать _name на всякий случай.