- Netzach
- Medlem ●
- Stockholm
- 2009-03-04 16:47
Hallå allesammans. Jag har skapat en mxml-komponent som jag har behov av att ge fem strängar till dess konstruktor (dynamiskt innehåll i 5st Label), så jag får då utöka den med en subklass skriven i ActionScript. Problemet som uppstår är att jag har ställt in att funktionen onLoad() skall köras då superklassen körs, och jag försöker överskugga denna i subklassen skriven i actionscript, men det blir fortfarande superklassens funktion som körs, dvs får Label:arna värdet av superklassens kårdkodade strängar istället för subklassens fem strängar som anges till konstruktorn.
Vad kan vara problemet?
mxml-koden (Action.mxml):
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="800" initialize="onLoad();" height="75" backgroundAlpha="0.0" borderStyle="none" cornerRadius="0"> <mx:Script> protected function onLoad():void{ labelMainValue.text = "cat1"; labelSubValue.text = "cat2"; labelAmount1Value.text = "val1"; labelAmount2Value.text = "val2"; labelCommentValue.text = "comment"; } </mx:Script> <mx:Button x="0" y="0" width="800" height="75" enabled="false" id="background"/> <mx:Label x="10" y="10" text="Handlingstyp:" id="labelMain"/> <mx:Label x="208" y="10" text="Kategoti:" id="labelSub"/> <mx:Label x="380" y="10" text="Mängd 1:" id="labelAmount1"/> <mx:Label x="554" y="10" text="Mängd 2:" id="labelAmount2"/> <mx:Label x="17" y="47" text="Kommentar:" id="labelComment"/> <mx:Button x="728" y="8" label="-" height="57" width="62" id="buttonAdd" fontSize="12"/> <mx:Label x="100" y="10" width="100" id="labelMainValue" textAlign="left"/> <mx:Label x="272" y="10" width="100" id="labelSubValue" textAlign="left"/> <mx:Label x="446" y="10" width="100" id="labelAmount1Value" textAlign="left"/> <mx:Label x="620" y="10" width="100" id="labelAmount2Value" textAlign="left"/> <mx:Label x="100" y="47" width="620" id="labelCommentValue" textAlign="left"/> </mx:Canvas>
ActionScript-koden (TestAction.ac):
package components{ import flash.events.Event; public class TestAction extends Action{ private var cat1:String; private var cat2:String; private var val1:String; private var val2:String; private var comment:String; public function TestAction(a:String,b:String,c:String,d:String,e:String){ super(); cat1 = a; cat2 = b; val1 = c; val2 = d; comment = e; } public function setValues(_cat1:String,_cat2:String,_val1:String,_val2:String,_comment:String):void{ cat1 = _cat1; cat2 = _cat2; val1 = _val1; val2 = _val2; comment = _comment; } override protected function onLoad():void{ labelMainValue.text = cat1; labelSubValue.text = cat2; labelAmount1Value.text = val1; labelAmount2Value.text = val2; labelCommentValue.text = comment; } } }