ActionScript 2.0 :: Return A.attributes.first > B.attributes.first Will Return What Value?
Jun 8, 2006i was mugging on this tutorial :
[Code]...
The return a.attributes.first > b.attributes.first will return what value?
i was mugging on this tutorial :
[Code]...
The return a.attributes.first > b.attributes.first will return what value?
I am dynamically creating a number of objects (movieclips) which all have a number of attributes.[code]and so on. i.e sub attributes. I don't think this is possible? Only sprite and movieclips can have dynamic attributes so unless atrbY is a movieclip (which it isn't, it's a string) it isn't allowed?Each object can have suboptions with further attributes associated with the chosen suboption.Later in the program I will manipulate, read and interact with the objects and they have text display behaviours dependent on the suboption chosen. That part (should) be straightforward! heh. One the object has the attributes attached in a usable format, accessing them should be simple.This will be for a store. i.e t-shirt1 has size small, price 10, size medium, price 12, size large, price 14. t-shirt2 has size medium, price 35, size large, price 40 and so on.[code]
This format of the XML can be adjusted if it would make the parsing easier.I am currently reading the XML in, stepping through, grabbing the individual parameter such as category and then adding it as an attribute of the object and it works fine. i.e. I end up with obj.category = 'catname'. However, on suboptions I am having a problem.Should I put all the suboptions in a multidimensional array and use nested loops to apply them to the object?I would still have the problem of objX.suboptionarray[Y].suboptionprice which isn't allowed? In the above XML case Y would be 0,1 and 2 giving 3 suboptions to objX and each suboptions would hold attributes such as pvid associated with that suboption.I could go down the horrible route, obj1.suboption1subptionprice ; obj1.suboption1suboptionpname; obj1.suboption1suboptionvalue; obj1.suboption2suboptionprice; obj1.suboption2suboptionpname and so on and so on for each suboption which could be five options (small,medium,large,x-large, xx-large) and which would "work" but would be bad programming and involve splicing names to get say, the "third" suboptions' price and pvid e.t.c
Going down the route of mutidimensional arrays sounds good except that on say 50 objects I would have stacks of arrays which I'm guessing isn't great in terms of resources?.Just to add, the number of suboptions varies between object, every object has a minimum of one suboption (default option) but can have as many as needed (unlikely to be more than 5 but should be scalable). i.e some t-shirts only come in medium whereas some have many sizes.I have a fair amount of leeway on the format of the XML which I generate from the database so the formatting of that could change to make the parsing easier.
I'm having some troubles with the use of interface and inheritance in AS3. I've done lots of OOP in the past and what I'm trying to do seems obvious to me, but doesn't work in AS3. The question is : Is it possible to override a function that return an Object of class A, and make it return an Object of Class B which extends A ? It seems not to be possible, since I'm getting a signature error in Flash, when compiling. For example, the following set of class do not compile (the code in function definition doesn't matter):
[Code].....
After loading the following XML file, is there a way to count the number of attributes of the "question" node, and if possible, the number of items having the word "answer" in them? (in this case 4 should be returned, ie. answer1, answer2, answer3, answer4)
Code:
<?xml version="1.0" encoding="utf-8" ?>
<quiz>
<question text="The man went ___ the morning." answer1="at" answer2="on" answer3="in" answer4="out" correct="in" />
</quiz>
<leval0 layput="Menu">
<level label="s" type="level" levelid="1"/>
<level label="a" type="level" levelid="2"/>
[code].....
here's a painfully easy one I bet -- I'm aware of how to use EX4 to filter most pieces of the xml I need however how can I filter an XML list such as the one below to check say --- if a dog is a beagle? preferably as a Boolean.
[Code]...
I have XML below
<node id="id1"/><node id="id2"/>...
<edge id="eid1" fromId="id1" toId="id2"/>
<edge id="eid2" fromId="id3" toId="id1"/>
<edge id="eid3" fromId="id2" toId="id4"/>
Now I need get all edge base on nodeId,
nodeId = id1 -> eid1, eid2
nodeId = id2 -> eid1, eid3
nodeId = id3 -> eid2
nodeId = id5 -> Null
I want to get all xml elements (xml descendents) which have some attributes like:
<books>
<book concept="rr" author="xx"/>
<book concept="tt" />
<book concept="yy" />
<book concept="uu" author="xx"/>
</books>
I need to perform a xml descendent search for xml nodes with author attribute containing
results should be:
<book concept="rr" author="xx"/>
<book concept="uu" author="xx"/>
How do I get all the attributes that exist on a XML node? For example, I have the following XML:
<item id="100">
<defaults width="10" height="100" post="true">
</item>
I would like to get the names and values on the defaults node.
Here is some starter code:
if (item.defaults) {
var attributes:Object = item.defaults.@*; // found in another post
for each (var value:String in attributes) {
[Code]....
Problem is, whenever I try to change attributes like align or scaleMode I get the following error message:
"Access of possibly undefined property scaleMode through a reference with static type Class".
In what part of the code am I allowed to change Stage attributes?
I wonder if you can use the override in atributtes. If yes, how could I do this?
View 3 RepliesIs there anyway to get the number of attributes an xml node has.
I'm just not fond of the way you have to loop through an xml node ala [URL]
for (attr in this.childNodes[i].attributes) {
...
}
Is there nothing like childNodes[i].attributes.length?
In my project I have some xml I've embedded and am now parsing.
Here's an example of xml I have.
HTML Code:
<use>
<player>
<add var="health">2</add>
[Code].....
I guess I could just change the names of them in my XML but their must be a workaround. I could potentially not have control over the file and then I'd be screwed.
My XML looks like this...
<feature title="This is my /n features title"/>
I don't have access to change the schema.
In Flash I load the text content of the title attribute into a text field, problem is -- the prints instead of operating as a carriage return (new line).
Again, no access to the XML so changing the TextField to htmlText and adding a <br/> tag wont work.
When I try to load in my xml attributes it loads in all the attribures for that node not just the Title Or Description. How do I get it to just load the Title.
Code:
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadXML);
loader.load(new URLRequest("2152.xml"));
function loadXML(e:Event):void {
XML.ignoreWhitespace=true;
var xml=new XML(e.target.data);
[Code] .....
Is there a way to find an XML element by values of two attributes (XPath or whatever?)?
I would prefer not to loop through the result of one of the attributes search, because XML is huge and its processing is already slow.
Example:
myFeature = _contextXML.namespace::row.((@modelName==var1) AND (@featureTitle==var2))..@featureDescription;
I have set up my code to filter my xml attributes but need to be able to filter by a var that is dynamically set elsewhere. I can get the code to work if I set: var birthyear = "1980";
How do I get var birthyear to use the var yob that is set elsewhere in my code?
[Code].....
I was trying to use default xml namespaces, but came upon something strange.
I got the following piece of xml:
<animal type="sheep" xmlns="http://blabla">
<name>josh</name>
<age>2</age>
</animal>
[Code].....
now for some reason, the elements are correctly traversed using the default namespace. But the attribute isn't found. After a bit of debugging, I found that I could only retrieve the attribute when using xml.animal.attribute(new QName("", "type")). Why isn't the attribute in the same default namespace as the element?
How to find xml attributes valus
[Code]...
There are dashes in attributes of an xml, and I don't know how to filter them: Here you can see a simple example of the xml:
<posts>
<post>
<photo-url max-width="1280">http://blabla.tumblr.com/photo/98</photo-url>
</post>
</posts>
Because also the photo-url-tag has a dash, I needed to parse it with ...child("photo-url"). This worked fine, but if I want to filter these tags(photo-url), in order to receive all photo-url's with the same attribute: "max-widht='1280'", I couldn't manage to do so. I tried this approach:
var photoUrl:XMLList = xml.posts.post.child("photo-url").(@max-width==1280);
I get this error:
ReferenceError: Error #1065: Variable @max is not defined.
I've tried many different ways of accessing the name of an attribute, but just can't get it working.The current Function:
protected function applyProperties(_axml:XML):void
{
var list:XMLList = _axml.properties;[code]...........
I have tried the name, I've tried searching it as an Object, I looked for solutions on stackoverflow.. nothing has worked for me so far. Originally I had the properties node as such: fearing that Flash was interpretting incorrectly.
edit: It seems like the XML was interpretted rather than printed out..
I don't know why it happens, but all elements of my array has same value :(
[Code]....
I don't know why but all nodes in nodesList, has same location (the location of last point pushed to the array...)
Let's say I have a class which looks like this :
public class MyClass
{
public var attribute1;
public var attribute2;
}
and I'd like to get attribute1 and attribute2 as strings. I tried this :
var test:MyClass = new MyClass();
for (var key:String in test)
{
trace(test[key]);
}
but it does not work, it never goes in the loop. How can I do what I want to do ?
Ive been asked to research the relationships between classes but having trouble understanding it.
Within my code, the class A creates an instance of class B inside it, storing the instantiated B in a variable in class A so that class A can access data members (attributes) and methods from class B.
How could I create a link in B so that it can also access information about class A?
I'm writing some actionscript to provide a flash frontend to an MS Excel spreadsheet. The idea is that the user will be able to press buttons in a flash application, and that will enter data into the spreadsheet (which will be read and written as XML).
The XML of an MS Excel document looks like this:
Code:
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
[Code]....
I tried to output all the data inside the nodeName size and in works fine but when it comes to the attributes it gives me only the firstChild [code]...
View 1 RepliesIs there a way to list the attributes of an XML node?
For example, let's say the XML you're reading is just one tag[code]...
But I don't know what all of the possible attributes are, so it's obviously hard for me to test for them all.
I could find out what all of the possibilities are, but that would require MUCH more work than finding out how to list the attributes, because a for loop sounds much nicer than dozens of if statements.
I am creating a class which extends the XML class. I am adding a reset() method which will clear the xml instance and its root attributes. I want to strip dynamic attributes from the root XML node. I'm using a loop to step through each attribute and then calling delete on the node attribute.[code]
View 2 Repliesif there is a way to access XML attributes by replacing the actual attribute name with an ActionScript variable?
For example:
Code:
var myXml:XML = <root> <child id="child1" /> <child id="child2" /> </root>;
var propToAccess:String = "id";
trace(myXml.child.@{propToAccess});
As you might expect, this throws a compiler error. Hopefully it gets the point across, though.
I create a TextFormat variable like so:
ActionScript Code:
textBox1_fmt = new TextFormat();
textBox1_fmt.color = 0xFFFFFF;
textBox1_fmt.size = 22;
What I would also like to change though is the font family to Lithos Pro and set the alignment to the right. Do you need to embed the fonts? If so, then how?
I then draw a TextField onto the screen like so:
ActionScript Code:
textBox1_txt = new TextField();
textBox1_txt.text = "example";
[Code]....
otherwise it reverts to some default setting. How can I change this default setting?