I tried to recompile an older Flash CS 4 project with Flash CS 5 but got this compile time error 1061: Call to a possibly undefined method reuseNodes through a reference with static type Class
caused by the usage of one of my utility classes:
This didn’t work
import de.superclass.util.XMLUtil;
...
XMLUtil.someMethod();
This still works
...de.superclass.util.XMLUtil.someMethod();
So there was no error in my class because it’s still usable when I use the full class package but it didn’t work when I just import it with the import statement.
After some research I found an undocumented XMLUtil
class which avoids the correct access to my de.superclass.util.XMLUtil
class.
This class doesn’t exist in Flash CS 4 but is available in Flash CS 5. Simply create a new FLA in Flash CS 5 an run this code on timeline
trace( describeType( XMLUtil ) );
and you’ll get this result:
<type name="XMLUtil" base="Class" isDynamic="true" isFinal="true" isStatic="true">
<extendsClass type="Class"/>
<extendsClass type="Object"/>
<constant name="kAttrYMin" type="String"/>
<constant name="kAttrXMax" type="String"/>
<constant name="kAttrYMax" type="String"/>
<constant name="kAttrObj0" type="String"/>
<constant name="kAttrObj1" type="String"/>
<constant name="kAttrX0" type="String"/>
<constant name="kAttrY0" type="String"/>
<constant name="kAttrX1" type="String"/>
<variable name="kTagGravity" type="String"/>
<constant name="kAttrY1" type="String"/>
<variable name="kTagCollideSpace" type="String"/>
<constant name="kAttrType" type="String"/>
<variable name="kTagRigidBody" type="String"/>
<constant name="kAttrPin" type="String"/>
<variable name="kTagRect" type="String"/>
<constant name="kAttrSlider" type="String"/>
<variable name="kTagJoint" type="String"/>
<constant name="kAttrLength" type="String"/>
<variable name="kTagSpring" type="String"/>
<constant name="kAttrStrength" type="String"/>
<variable name="kTagFrames" type="String"/>
<constant name="kAttrDamping" type="String"/>
<variable name="kTagFrame" type="String"/>
<constant name="kAttrSimSpeed" type="String"/>
<variable name="kTagFluid" type="String"/>
<constant name="kAttrAxis" type="String"/>
<variable name="kTagEmitter" type="String"/>
<constant name="kAttrAsset" type="String"/>
<variable name="kTagOrigin" type="String"/>
<constant name="kAttrSpring" type="String"/>
<variable name="kTagKeyframes" type="String"/>
<constant name="kAttrSpringStrength" type="String"/>
<variable name="kTagKey" type="String"/>
<constant name="kAttrSpringDamping" type="String"/>
<variable name="kTagView" type="String"/>
<variable name="kTagGeom" type="String"/>
<constant name="kAttrIndex" type="String"/>
<constant name="kAttrCollideType" type="String"/>
<constant name="kAttrCellSize" type="String"/>
<constant name="kAttrSpringValue" type="String"/>
<constant name="kAttrCollideSpace" type="String"/>
<constant name="kAttrRowDimen" type="String"/>
<constant name="kAttrDensity" type="String"/>
<constant name="kAttrColDimen" type="String"/>
<constant name="kAttrPosX" type="String"/>
<constant name="kAttrTimeStep" type="String"/>
<constant name="kAttrPosY" type="String"/>
<constant name="kAttrTime" type="String"/>
<constant name="kAttrAngle" type="String"/>
<constant name="kAttrColor" type="String"/>
<constant name="kAttrVelX" type="String"/>
<constant name="kAttrStrokeColor" type="String"/>
<constant name="kAttrVelY" type="String"/>
<constant name="kAttrAlpha" type="String"/>
<constant name="kAttrVelA" type="String"/>
<constant name="kAttrFPS" type="String"/>
<constant name="kAttrCOR" type="String"/>
<constant name="kAttrSprings" type="String"/>
<constant name="kAttrCOF" type="String"/>
<constant name="kAttrLimits" type="String"/>
<constant name="kAttrFixed" type="String"/>
<constant name="kAttrMinAngle" type="String"/>
<constant name="kAttrID" type="String"/>
<constant name="kAttrDBlend" type="String"/>
<constant name="kAttrPoseStrength" type="String"/>
<constant name="kAttrPoseDamping" type="String"/>
<constant name="kAttrBodyDamping" type="String"/>
<constant name="kAttrX" type="String"/>
<constant name="kAttrY" type="String"/>
<constant name="kAttrXMin" type="String"/>
<accessor name="prototype" access="readonly" type="*" declaredBy="Class"/>
<method name="nodeHasAttribute" declaredBy="XMLUtil" returnType="Boolean">
<parameter index="1" type="XML" optional="false"/>
<parameter index="2" type="String" optional="false"/>
</method>
<method name="getIntAttribute" declaredBy="XMLUtil" returnType="int">
<parameter index="1" type="XML" optional="false"/>
<parameter index="2" type="String" optional="false"/>
<parameter index="3" type="int" optional="true"/>
</method>
<method name="getNumberAttribute" declaredBy="XMLUtil" returnType="Number">
<parameter index="1" type="XML" optional="false"/>
<parameter index="2" type="String" optional="false"/>
<parameter index="3" type="Number" optional="true"/>
</method>
<method name="getBoolAttribute" declaredBy="XMLUtil" returnType="Boolean">
<parameter index="1" type="XML" optional="false"/>
<parameter index="2" type="String" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
</method>
<method name="getStringAttribute" declaredBy="XMLUtil" returnType="String">
<parameter index="1" type="XML" optional="false"/>
<parameter index="2" type="String" optional="false"/>
<parameter index="3" type="String" optional="true"/>
</method>
<factory type="XMLUtil">
<extendsClass type="Object"/>
</factory>
</type>
So I had to rename my class to de.superclass.util.XMLUtils
.
You might run into the same problems when using mx.utils.XMLUtil
(Flex Framework) or com.adobe.utils.XMLUtil
(AS3CoreLib) but I didn’t test it!
UPDATE:
I found XMLUtil
classes in
Adobe Flash CS5/Common/Configuration/ActionScript 3.0/libs/ik.swc and
Adobe Flash CS5/Common/Configuration/ActionScript 3.0/libs/PffLib.swc
Removing the $(AppConfig)/ActionScript 3.0/libs directory within the ActionScript export settings avoids the problem. But I have no time to test if this directory is necessary. If you run into problems please leave me a comment!