Просмотр полной версии : как передать переменную из 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;
Потому что классы, расширяющие MovieClip, не могут создаваться через конструктор.
Dorin123
20.11.2006, 14:00
спасибо, разобрался уже :)
Dorin123
20.11.2006, 14:19
остаеться только малость непонятным как мне передать значение переменной из класса в другой класс..
Создать экземпляр заданного класса в родительском классе и передать ему переменную.
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?
В конструкторе:
…
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
Переименовать _name на всякий случай.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.