PDA

Просмотр полной версии : неприсваивается свойство Класса


stylingo
26.06.2007, 19:52
/* Привет, у меня проблемка, может кто поможет?
скрипт только пишется так что его принадлежность пока бесмыслена... проблемка в одной мелочи

в test.fla в первом кадре у меня:
*/

import classes.*;
// содаю объект из класса
var simpePump:xml_pump = new xml_pump();
// knock knock to base
simpePump.login();

/*
затем в след символе через enterFrame я считываю статус из simpePump
*/

onClipEvent (enterFrame) {
trace(_parent.simpePump.myStatus);
}


/*
файл xml_pump.as выглядит так:
*/

class classes.xml_pump {
var myStatus:String;
function login() {
//var send_xml:Array;
//this.send_xml["username"] = myUsername;
//this.send_xml["password"] = myPassword;
pump_data();
}
function pump_data() {
var load_xml:XML = new XML();
var send_xml:LoadVars = new LoadVars();
load_xml.ignoreWhite = true;
send_xml.query = "ping";
load_xml.onLoad = function(success:Boolean) {
if (success) {
// эта строка почемуто непресваивает значение :(
myStatus = "Loading complete, waiting orders";
trace("XML was loaded! => "+load_xml);
} else {
trace("Connection failed!");
}
};
// когда эта строка прекрасно присваивает значение
myStatus = "Loading XML...";
send_xml.sendAndLoad("http://adress/xml.php", load_xml, "POST");
this.myStatus = myStatus;
}
function xml_pump(myName:String, myAge:Number) {
trace("Pump was started");
//this.name = myName;
}
function getInfo():String {
return ("Hello, my name is and I’m years old.");
}
}

/*
Проблема в том что при function(success:Boolean) {if (success) {...
строка myStatus = "Loading complete, waiting orders " :wacko: - не работает
*/

iNils
26.06.2007, 19:56
stylingo:
1. Для оформления своего кода, надо использовать теги , поэтому жмите кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif и исправляйте.
2. В разделе "ActionScript 1.0/2.0 для Профессионалов" использование конструкций onClipEvent запрещено, это к начинающим

CorC
27.06.2007, 10:02
Из клипа (почему-то) вообще то обьект класса виден?
Если в login trace поставить, он выполнится?

NePridymal
29.06.2007, 18:56
Все просто. Потому что myStatus объявлена как переменная класса xml_pump а там где не работает присваивание, оно выполняется для переменной объекта load_xml. Тоесть когда внутри функции load_xml.onLoad идет присваивание переменной myStatus то значение присваивается переменной load_xml.myStatus а не xml_pump.myStatus (т.к. функция эта относится к объекту load_xml а не к классу xml_pump). ООП.....