这里的情况很奇怪:声明为公共的 AS 对象在一种方法中是“可写的”,而在另一种方法中是不可写的。
以下是一些代码部分:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:ns1="*"
xmlns:local="*"
minWidth="955" minHeight="600"
width="955" height="600"
creationComplete="init()"
currentState="Login" minHeight.pocetakPartije="1200" minWidth.pocetakPartije="1000">
...
<fx:Script>
<![CDATA[
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.navigateToURL;
import flash.utils.Timer;
public var obavestenja:Object;
private function init() :void
{
// ...
obavestenja = {korak10n: false, korak6o: false, korak8o: false, korak10o: false};
}
// ...
// this method changes it without issues ...
private function pingOKHandler(evt:ResultEvent):void
{
// ...
switch (stanjePartije.korak) {
case 0:
//deaktiviranje zetona
Alert.show('Deaktiviram zetone...');
deaktiviranjeZetona();
//na serveru smo promenili korak na 1
break;
//...
case 10:
//info o osnovnoj kocki odbrane
rezultatNapad.visible = true;
if (!obavestenja.korak10n) {
Alert.show('Branitelj je dobio...' + stanjePartije.osnovnaKockaOdbrana, "Alert",
Alert.OK, this,
obavestenOIshoduNListener, null, Alert.OK);
//rezultatOdbrana.visible = true;
//rezultatOdbrana.text ='Osnovna kocka odbrana:' + stanjePartije.osnovnaKockaOdbrana;
obavestenja.korak10n = true;
}
ExternalInterface.call('console.log', 'korak10n: ' + obavestenja.korak10n);
//promeniKorak(11);
break;
}
// ...
ExternalInterface.call('console.log','nema vise pinga!');
}
// this method cannot change "obavestenja" object
protected function promenaNapadacaNe_clickHandler(event:MouseEvent):void
{
//TODO Auto-generated method stub
ExternalInterface.call('console.log', 'promenaNapadacaNe: ' + stanjePartije.igracNaPotezu );
//stanjePartije.redniBroj++;
mitskiheroji.promenaNapadacaNe();
//promeniKorak(5);
promenaNapadacaPanel.visible = false;
obavestenja = {korak10n: false, korak6o: false, korak8o: false, korak10o: false};
}
<fx:Script>
...
<s:Button id="promenaNapadacaNe" x="253" y="35" label="Ne"
click="promenaNapadacaNe_clickHandler(event)"/>
是否有一些特殊原因导致该对象不能从侦听器访问(即可写)而它可以从其他方法访问(可写)?
谢谢