Hi all.
I have an Accordian component with 2 children hard coded in, I dynamically load create children into these accodians children to have a 2 level accordian. I also have need to destry the children via a delete button on each individual one. Everything works fine, until, I destroy a child.
After destroying a child and trying to add the next child another child is removed and I then get a gap in between items (I do loop through the accordian and use the Move method to ensure each child is in the correct position)
I can’t figure this one out. Anyone got any ideas?
My code is as follows:
[FONT=Courier New]function AddToTearOffs(WinID,SName,CName){[/FONT]
[FONT=Courier New] var child_obj:Object = _root.GadgetBar.myTearOffs.myTearOffsAcc.getChildAt(0);[/FONT]
[FONT=Courier New] var curSubjects:Number = child_obj.numChildren;[/FONT]
[FONT=Courier New] var Present:Boolean = false;[/FONT]
[FONT=Courier New] trace(curSubjects);[/FONT]
[FONT=Courier New] for (i=0; i<curSubjects; i++) {[/FONT]
[FONT=Courier New] child_obj.getChildAt(i).move(0,i*20);[/FONT]
[FONT=Courier New] if (child_obj.getChildAt(i).ButtonText.Text.text == CName){[/FONT]
[FONT=Courier New] Present = true;[/FONT]
[FONT=Courier New] }[/FONT]
[FONT=Courier New] };[/FONT]
[FONT=Courier New] if (Present == false){[/FONT]
[FONT=Courier New] var TearOffItem:Object = child_obj.createChild("TearOffItem", ["SubjectLbl"+WinID], {_x:0, _y:curSubjects*20});[/FONT]
[FONT=Courier New] TearOffItem.ButtonText.Text.text = CName;[/FONT]
[FONT=Courier New] TearOffItem.DeleteTearOff.onRelease = function(){[/FONT]
[FONT=Courier New] var child_obj:Object = _root.GadgetBar.myTearOffs.myTearOffsAcc.getChildAt(0);[/FONT]
[FONT=Courier New] var curSubjects:Number = child_obj.numChildren;[/FONT]
[FONT=Courier New] for (i=0; i<curSubjects; i++) {[/FONT]
[FONT=Courier New] if (child_obj.getChildAt(i).ButtonText.Text.text == CName){[/FONT]
[FONT=Courier New] child_obj.destroyChildAt(i);[/FONT]
[FONT=Courier New] updateAfterEvent();[/FONT]
[FONT=Courier New] }[/FONT]
[FONT=Courier New] var WindowX:Tween = new Tween(child_obj.getChildAt(i), "_y", Strong.easeInOut, child_obj.getChildAt(i)._y, i*20, .5, true); [/FONT]
[FONT=Courier New] child_obj.getChildAt(i).move(0,i*20);[/FONT]
[FONT=Courier New] }; [/FONT]
[FONT=Courier New] } [/FONT]
[FONT=Courier New] }[/FONT]
[FONT=Courier New]}[/FONT]
I have considered trying to use a dataset to manage this and firing the dataset into a SharedObject. But, I can’t seem to cretae the Dataset in flash? Is it possible to create and use a dataset entirely in flash without being loaded from an external source?
My code so far is a as follows:
function CreateDS(WinID,SName,CName){
var my_ds:DataSet;
// Load Existing Dataset
try {
my_ds.loadFromSharedObj("DSTearOffs");
} catch(e:DataSetError) {
trace("Unable to load shared object.");
}
// Apend Dataset with new Item
//my_ds.createItem({WinID:WinID, SName:SName, CName:CName});
my_ds.addItem(my_ds.createItem({WinID:"A", SName:"B", CName:"C"}));
// Save New Dataset
try {
my_ds.saveToSharedObj("DSTearOffs");
} catch(e:DataSetError) {
trace("Unable to create shared object");
}
};
I appriciate this is a long post with many questions, but, any help gretaly appriciated!
Thanks, TonyL