申し訳ありませんが、これはおそらく少しばかげた質問ですが、XML データのロードを処理し、アプリケーションの残りの部分からアクセスできるようにする Actionscript 2.0 クラスを作成しようとしています。
ただし、MovieClip 以外のクラス定義を作成したのはこれが初めてで、奇妙なエラーが発生しています。たとえば、ここに:
class Main extends SEBanner {
public function Main() {
_root._quality = 'BEST';
trace(_root._quality + ' SWF Quality Setting.');
trace('Banner main object instantiated. Ready to run.')
trace('Width of banner: ' + bannerWidth());
trace('Height of banner: ' + bannerHeight());
trace('Banner aspect ratio: ' + bannerAspectRatio());
trace('----------------------------------------------');
}
public var externals:External = new External();
}
外部クラスをインスタンス化しようとする最後の行 (外部で提供された Flash 変数と XML を処理するため、この名前が付けられています) は、コンパイラによって固定されており、次のようなエラーが表示されます (I'm日本語版の Flash の場合) 「クラス インスタンス変数は、コンパイル時にのみインスタンス化できます。」
私の知る限り、コードがコンパイルされている場合、それはコンパイル時であるため、混乱しています。コンパイル時にエラーが発生したため、このコードは問題ないはずです。
奇数。
ありがとう!
SS
更新:比較のための(機密情報を表示しないように削除された)外部クラスは次のとおりです。
import mx.xpath.XPathAPI;
class External {
private var _rawXML = new XML();
private var _xmlLocation:String = '';
public function External() {
trace('Loading external information...');
_rawXML.ignoreWhite = true;
_rawXML.onLoad = function(success:Boolean) {
if (success) {
trace('XML data was successfully loaded.')
initXML();
} else {
trace('There was an error loading the XML. Please check the XML file.');
}
}
preLoadXML();
}
private function loadLocalXML():Void {
getXML();
}
private function loadNetworkXML():Void {
getXML();
}
function getXML():Void {
if ( _rawXML.load( _xmlLocation ) ) {
trace('XML loading...');
} else {
trace('I\'m having difficulty finding the XML. You might want to check your data source.')
}
}
function initXML():Void {
_root._ary = XPathAPI.selectNodeList(this.rawXML, eventPath);
_root._total = _ary.length;
_root.siteLink = getXRedirect();
}
}