View Full Version : classes and variable. Why are they so sensitive??
luciferonline
10-01-2007, 02:08 PM
package classes
{
public class xml_data_loader /*extends XMLListCollection*/
{
public static function call_XML() :void{
public var gauge_3_2:Number = 12;
}
}
}
Can some one explain why I can not access these vars from a seperate .as file.
this is what I am getting:
1114: The public attribute can only be used inside a package.
Cant seem to get a grip on it.
cheers
flexy
10-01-2007, 02:55 PM
Try:
package classes
{
public class xml_data_loader /*extends XMLListCollection*/
{
public var gauge_3_2:Number = 12;
public static function call_XML() :void
{}
}
}
luciferonline
10-01-2007, 03:11 PM
no still is bugging out.
What it is for is to set about 20 variable and then assign them to a switch statement:
like so:
public function guageLoaded(which:Number):void{
trace(which);
var thisGuage:MovieClip;
switch(which){
case 1:
thisGuage = guage_1.content as MovieClip;
thisGuage.positionNeedles(gauge_1_1, gauge_1_2, gauge_1_3, null, 0.2);
break;
the only problem is the switch statement is out of the scope of the xml loader(that you helped me with the other day).
I just want to make the vars global?
Its seems weird that you cant just pull values as you please. or am I just a retard??
luciferonline
10-02-2007, 10:06 AM
BUMP^^^^ Anyone??
drkstr
10-02-2007, 10:42 AM
What flexy told you was correct. public vars are declared inside a class, not a function. You would use the function to assign data to the public vars. Like this:
package classes
{
public class xml_data_loader /*extends XMLListCollection*/
{
public var gauge_3_2:Number;
public static function call_XML() :void {
gauge_3_2 = 3;
}
}
}
So when you're XML loader function is complete, assign the XML data to public class vars. If it is "bugging out" as you say, you should post more code so we can tell you what you're doing wrong.
Best Regards,
...aaron
luciferonline
10-02-2007, 11:05 AM
hey cheers fellas.
Its a little more complex than that. I am trying to assign xml data to the vars
: gauge_1_1 = Math.floor(((Number(myXML.gauges.data[0].current))-(Number(myXML.gauges.data[0].target)))/(Number(myXML.gauges.data[0].target))*100);
The vars exist inside:
function xmlLoader(evtObj:Event) :void
{}
its killin me.
luciferonline
10-02-2007, 11:24 AM
If you are interested this is the entire class package:
package classes
{
import flash.display.Sprite;
import flash.xml.*
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;
import mx.collections.XMLListCollection;
import mx.controls.DataGrid;
import mx.core.UIComponentGlobals;
import mx.collections.ArrayCollection;
public class xml_data_loader //extends ArrayCollection
{
public var gauge_1_1:Number;
public static function call_XML() :void{
trace("LOADING DYNAMIC XML DATA");
var myXML:XML = new XML();
var XML_URL:String = "../assets/data.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener( Event.COMPLETE, xmlLoader );
myLoader.load( myXMLURL );
function xmlLoader(evtObj:Event) :void
{
myXML = XML(myLoader.data);
trace("DATA LOADED");
//////////-------------------------------------
////*
////* *GAUGE PASSING METHOD*
////*
//////////-------------------------------------
////////////// *GAUGE 1*
gauge_1_1 = Math.floor(((Number(myXML.gauges.data[0].current))-(Number(myXML.gauges.data[0].target)))/(Number(myXML.gauges.data[0].target))*100);
var gauge_1_2:Number = Math.floor(((Number(myXML.gauges.data[1].current))-(Number(myXML.gauges.data[1].target)))/(Number(myXML.gauges.data[1].target))*100);
////////////// *GAUGE 2*
var gauge_2_1:Number = Math.floor(((Number(myXML.gauges.data[2].current))-(Number(myXML.gauges.data[2].target)))/(Number(myXML.gauges.data[2].target))*100);
var gauge_2_2:Number = Math.floor(((Number(myXML.gauges.data[3].current))-(Number(myXML.gauges.data[3].target)))/(Number(myXML.gauges.data[3].target))*100);
////////////// *GAUGE 3*
var gauge_3_1:Number = Math.floor(((Number(myXML.gauges.data[4].current))-(Number(myXML.gauges.data[4].target)))/(Number(myXML.gauges.data[4].target))*100);
var gauge_3_2:Number = Math.floor(((Number(myXML.gauges.data[5].current))-(Number(myXML.gauges.data[5].target)))/(Number(myXML.gauges.data[5].target))*100);
////////////// *GAUGE 4*
var gauge_4_1:Number = Math.floor(((Number(myXML.gauges.data[6].current))-(Number(myXML.gauges.data[6].target)))/(Number(myXML.gauges.data[6].target))*100);
var gauge_4_2:Number = Math.floor(((Number(myXML.gauges.data[7].current))-(Number(myXML.gauges.data[7].target)))/(Number(myXML.gauges.data[7].target))*100);
var gauge_4_3:Number = Math.floor(((Number(myXML.gauges.data[8].current))-(Number(myXML.gauges.data[8].target)))/(Number(myXML.gauges.data[8].target))*100);
////////////// *GAUGE 5*
var gauge_5_1:Number = Math.floor(((Number(myXML.gauges.data[9].current))-(Number(myXML.gauges.data[9].target)))/(Number(myXML.gauges.data[9].target))*100);
////////////// *GAUGE 6*
var gauge_6_1:Number = Math.floor(((Number(myXML.gauges.data[10].current))-(Number(myXML.gauges.data[10].target)))/(Number(myXML.gauges.data[10].target))*100);
var gauge_6_2:Number = Math.floor(((Number(myXML.gauges.data[11].current))-(Number(myXML.gauges.data[11].target)))/(Number(myXML.gauges.data[11].target))*100);
////////////// *GAUGE 7*
var gauge_7_1:Number = Math.floor(((Number(myXML.gauges.data[12].current))-(Number(myXML.gauges.data[12].target)))/(Number(myXML.gauges.data[12].target))*100);
///////////// *GAUGE 8*
var gauge_8_1:Number = Math.floor(((Number(myXML.gauges.data[13].current))-(Number(myXML.gauges.data[13].target)))/(Number(myXML.gauges.data[13].target))*100);
var gauge_8_2:Number = Math.floor(((Number(myXML.gauges.data[14].current))-(Number(myXML.gauges.data[14].target)))/(Number(myXML.gauges.data[14].target))*100);
///////////// *GAUGE 9*
var gauge_9_1:Number = Math.floor(((Number(myXML.gauges.data[15].current))-(Number(myXML.gauges.data[15].target)))/(Number(myXML.gauges.data[15].target))*100);
}
}
}
}
the first var is red lighting now. Saying undefined variable.
flexy
10-02-2007, 12:56 PM
I'm going to chip in and say that you can't reference gauge_1_1 from within your static function call_XML(). You'll need to make it static.
Also, looking at the positioning of your closing braces, you're nesting methods.
luciferonline
10-02-2007, 01:00 PM
I found that the xml loader wont work unless it is nested.
are you referring to the function being static or the vars?
cheers
luciferonline
10-02-2007, 03:14 PM
So now I have two classes.
They seem to be fine(touch wood)
The only thing is xternal.as is saying
1017: The definition of base class Sprite was not found.
any thoughts?
package classes
{
public class xternal extends Sprite {
myXML:XML;
public var gauge_1_1:Number;
public function xternal(xml:XML) {
myXML = new XML(xml);
gauge_1_1 = Math.floor(((Number(myXML.gauges.data[0].current))-(Number(myXML.gauges.data[0].target)))/(Number(myXML.gauges.data[0].target))*100);
gauge_1_2 = Math.floor(((Number(myXML.gauges.data[1].current))-(Number(myXML.gauges.data[1].target)))/(Number(myXML.gauges.data[1].target))*100);
////////////// *GAUGE 2*
gauge_2_1 = Math.floor(((Number(myXML.gauges.data[2].current))-(Number(myXML.gauges.data[2].target)))/(Number(myXML.gauges.data[2].target))*100);
gauge_2_2 = Math.floor(((Number(myXML.gauges.data[3].current))-(Number(myXML.gauges.data[3].target)))/(Number(myXML.gauges.data[3].target))*100);
////////////// *GAUGE 3*
gauge_3_1 = Math.floor(((Number(myXML.gauges.data[4].current))-(Number(myXML.gauges.data[4].target)))/(Number(myXML.gauges.data[4].target))*100);
gauge_3_2 = Math.floor(((Number(myXML.gauges.data[5].current))-(Number(myXML.gauges.data[5].target)))/(Number(myXML.gauges.data[5].target))*100);
////////////// *GAUGE 4*
gauge_4_1 = Math.floor(((Number(myXML.gauges.data[6].current))-(Number(myXML.gauges.data[6].target)))/(Number(myXML.gauges.data[6].target))*100);
gauge_4_2 = Math.floor(((Number(myXML.gauges.data[7].current))-(Number(myXML.gauges.data[7].target)))/(Number(myXML.gauges.data[7].target))*100);
gauge_4_3 = Math.floor(((Number(myXML.gauges.data[8].current))-(Number(myXML.gauges.data[8].target)))/(Number(myXML.gauges.data[8].target))*100);
////////////// *GAUGE 5*
gauge_5_1 = Math.floor(((Number(myXML.gauges.data[9].current))-(Number(myXML.gauges.data[9].target)))/(Number(myXML.gauges.data[9].target))*100);
////////////// *GAUGE 6*
gauge_6_1 = Math.floor(((Number(myXML.gauges.data[10].current))-(Number(myXML.gauges.data[10].target)))/(Number(myXML.gauges.data[10].target))*100);
gauge_6_2 = Math.floor(((Number(myXML.gauges.data[11].current))-(Number(myXML.gauges.data[11].target)))/(Number(myXML.gauges.data[11].target))*100);
////////////// *GAUGE 7*
gauge_7_1 = Math.floor(((Number(myXML.gauges.data[12].current))-(Number(myXML.gauges.data[12].target)))/(Number(myXML.gauges.data[12].target))*100);
///////////// *GAUGE 8*
gauge_8_1 = Math.floor(((Number(myXML.gauges.data[13].current))-(Number(myXML.gauges.data[13].target)))/(Number(myXML.gauges.data[13].target))*100);
gauge_8_2 = Math.floor(((Number(myXML.gauges.data[14].current))-(Number(myXML.gauges.data[14].target)))/(Number(myXML.gauges.data[14].target))*100);
///////////// *GAUGE 9*
gauge_9_1 = Math.floor(((Number(myXML.gauges.data[15].current))-(Number(myXML.gauges.data[15].target)))/(Number(myXML.gauges.data[15].target))*100);
}
}
}
package classes
{
import flash.display.Sprite;
import flash.xml.*
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;
import mx.collections.XMLListCollection;
import mx.controls.DataGrid;
import mx.core.UIComponentGlobals;
import mx.collections.ArrayCollection;
public class xmlDataLoad extends Sprite {
var xml:XML;
public function xml_data_loader() {
var myXML:XML = new XML();
var XML_URL:String = "../assets/data.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener( Event.COMPLETE, xmlLoader );
myLoader.load( myXMLURL );
function xmlLoader(evtObj:Event) :void
{
xml = XML(myLoader.data);
trace("DATA LOADED");
var ext:xternal = new xternal(xml);
}
}
}
}
|
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.