代码是
import mx.events.EventDispatcher;
import Proxy;
以下是课程定义。
class XMLLoad extends EventDispatcher{
public var XML_NODE_TYPE_TEXT = 3;
public var XML_NODE_TYPE_ELEMENT = 1;
private var xmlPath:String;
private var xmlObj:Object;
private var classObj:Object;
private var data_xml:XML;
private var loadedxmldata:XML;
private var success:Boolean;
public static var LOAD_SUCCESS:String = "xmlObjCreated";
public static var LOAD_FAILED:String = "xmlObjFailed";
所有这些代码都属于同一个类 以下是上面课程中的函数
public function XMLLoad() {
loadedxmldata = new XML();
classObj = new Object();
}
public function setXMLObject(_xmlPath:String):Void {
xmlPath = _xmlPath;
data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.load(xmlPath)
data_xml.onLoad = Proxy.create(this, loadXml, success, data_xml);
}
public function getLoadedXML():XML {
return loadedxmldata;
}
private function loadXml(success):Void {
if (success) {
loadedxmldata = data_xml
xmlObj = XMLDocToObject(data_xml);
var eveObj:Object = {target:this, type:LOAD_SUCCESS, xmlObj:xmlObj, nativeXMLObj:data_xml}
dispatchEvent(eveObj)
} else {
var eveObj:Object = {target:this, type:LOAD_FAILED, nativeXMLObj:data_xml}
dispatchEvent(eveObj)
}
}
public function XMLDocToObject(oXML):Array {
var obj = [];
if (oXML == null) {
return obj;
}
var eRoot = oXML.firstChild;
if (eRoot != null) {
obj = buildObject(obj, eRoot);
}
return obj;
}
private function buildObject(obj, eItem):Array {
var idx, eChild;
var oTarget;
while (eItem != null) {
idx = eItem.nodeName;
if (eItem.nodeType == XML_NODE_TYPE_ELEMENT) {
oTarget = buildObject({}, eItem.firstChild);
for (var attrib in eItem.attributes) {
oTarget[attrib] = eItem.attributes[attrib];
}
if (eItem.nodeValue != null) {
oTarget._value = eItem.nodeValue;
} else {
eChild = eItem.firstChild;
if (eChild != null) {
if (eChild.nodeType == XML_NODE_TYPE_TEXT) {
if (eChild.nodeValue != null) {
oTarget._value = eChild.nodeValue;
}
}
}
}
if (obj[idx]._type != 'array') {
obj[idx] = [obj[idx]];
obj[idx]._type = "array";
obj[idx][0] = oTarget;
} else {
obj[idx][obj[idx].length] = oTarget;
}
}
这些是功能。在课堂上。
答案 0 :(得分:2)
我建议取出AS2 swf。创建一个AS3包装器加载你的as2 swf。如果需要,您可以在两者之间进行沟通。
答案 1 :(得分:0)
将AS2转换为AS3并非易事。 2之间存在几个概念上的差异,即使具有良好知识的聪明人可以进行必要的更改,代码的实际功能也不会相同,他们将实现相同的目标,但不一样
如果你想要这样做,你将不得不自己动手,了解4000动画使用和做的事情,并编写自己的转换器,以你的方式转换它们。如果您不知道AS3或AS2,请在此处粘贴代码,如果它足够简单,我可以为您翻译其中的一个。