View Full Version : Array of Objects again (but for real)
salle
01-16-2008, 08:48 AM
I have problem.
I have private var array defined (global) and function triggered by an event which have to form array of objects and return it. But I can pass array to function because when I call my function I do not pass any parameters because it is event driven function and when I try to pass one or two parameters I have errors.
How? :p
creynders
01-16-2008, 09:44 AM
In other words, you want to know how to pass parameters through events?
You can create your own event class which extends the standard event class.
//SomeEvent.as
package{
import flash.events.Event;
class SomeEvent extends Event{
static public const THIS_IS_AN_EVENT : String = "this is an event";
public var myArray : Array;
public function SomeEvent( type : String, arr : Array, bubbles : Boolean = false, cancelable : Boolean = false ){
super( type, bubbles, cancelable );
myArray = arr;
}
}
}
//SomeObject.as
package{
import flash.events.EventDispacther;
public class SomeObject extends EventDispatcher{
public function SomeObject(){
}
public function doSomething() : void{
var arr : Array = new Array( "a", "b", "c" );
dispatchEvent( new SomeEvent( SomeEvent.THIS_IS_AN_EVENT, arr ) );
}
}
}
//event listener
public function eventReceived( event : SomeEvent ) : void{
trace( event.myArray ); //outputs: a, b, c
}
var someObject : SomeObject = new SomeObject();
someObject.addEventListener( SomeEvent.THIS_IS_AN_EVENT, eventReceived );
someObject.doSomething();
salle
01-16-2008, 09:32 PM
This is a problem :)
package
{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.BitmapData;
import flash.events.Event;
public class kvadratic extends Sprite
{
private var loader:URLLoader;
private var sajtovi:Array = new Array();
private var sajt:Object = new Object();
private var identiteti = new Array();
public function kvadratic()
{
init();
}
private function init():void
{
sajtLoader();
trace(sajtovi[0].domen);
}
public function initSajtObjects(event:Event):void
{
var xmlResponse:XML = XML((event.target as URLLoader).data);
var xmlList = xmlResponse.sajt;
for (var i=0; i<xmlList.length(); i++)
{
sajt.id = xmlList[i].id.text();
sajt.domen = xmlList[i].domen.text();
sajt.klijent = xmlList[i].klijent.text();
sajt.zelje = xmlList[i].zelje.text();
sajt.tehnologija = xmlList[i].tehnologija.text();
sajt.thumb = xmlList[i].thumb.text();
sajtovi[i] = sajt; // sajtovi[i] = xmlResponse.sajt;
}
trace (sajtovi[0].domen);
}
public function initIdentitetObjects(event:Event):void
{
var xmlResponse:XML = XML((event.target as URLLoader).data);
var xmlList = xmlResponse.identitet;
for (var i=0; i<xmlList.length(); i++)
{
var identitet:Object = new Object();
identitet.id = xmlList[i].id.text();
identitet.klijent = xmlList[i].klijent.text();
identitet.thumb = xmlList[i].thumb.text();
identiteti[i] = identitet;
}
}
private function sajtLoader():void
{
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, initSajtObjects);
var request:URLRequest = new URLRequest("http://localhost/KV/php/citajSajtove.php");
loader.load(request);
}
// handlers -----------------------------------------------------
}
}
XML structure:
<sajtovi>
<sajt>
<domen>...</domen>
<...
</sajt>
<sajt>
<domen>...</domen>
<...
</sajt>
</domen>
In function initSajtObjects array sajtovi is initialized and works OK but in function init I have message undefined. Why?
|
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.