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!
Thank you for clarifying this. I have a custom XMLUtil Class that I was using in CS4. When I ported my code to CS5, I got an error 1061. Now I know why! Thanks again for your assistance.
Thanks for posting this. I inherited a CS4 file and couldn’t get it to compile inCS5. Turns out it was importing com.adobe.utils.XMLUtil from AS3CoreLib.
I renamed XMLUtil and changed all the imports and definitions, and everything worked fine.