Initclip functions causing errors

Hello all!

I’m a javascript/html programmer, and although it’s coming along, my knowledge of flash/actionscript is still quite basic. Most of the coding comes easy, but the layering of content/actions still has the tendancy to give me fits. Sometimes I learn about something completely new, such as the use of #initclip, and it causes problems that I’m not sure how to handle…Such is the case here…

A client has given us the .fla to a fully functional .swf. The .fla contains many (40+) Sprites which are only used for #initclip purposes. When I recompile the .fla, I get 734 errors, which I’ll discuss below. For the record, I have tried publishing with both Flash MX and Flash 8, using both ActionScript 1.0 and 2.0 options, and trying to compile as Flash 6, 7, and 8 files. I’ve also added the Flash Remoting Components for both my Flash MX and Flash 8 programs.

The errors I receive are MOSTLY of two flavors. They are:

  1. Error Symbol=Sprite 1, layer=#initclip, frame=1:Line 6: Syntax error.
    _Pop Item1 (nil)

and,

  1. Error Symbol=Sprite 1, layer=#initclip, frame=1:Line 171: Attribute used outside class.
    static var invUpdateControl:Boolean = true

Obviously I can’t post all of the code, but I’ll paste in Sprite 1, which is the first #initclip to run.

I’ve heard that #initclip is going away now that AS 2.0 and 3.0 are being more widely used, so I’m sure there’s a better way to code much of these things, however time is of the essence, so the fewer changes we have to make, the better. My guess is that it’s something simple, as in I’m missing some files, settings, or server-type to handle the manipulation of mx.core, mx.controls, etc. Still, I’ve been unable to locate any references to the code “_Pop Item1 (nil)” anywhere but some random post on a forum that’s entirely in French. So all help will be appreciated. Thank you in advance.

Without further ado, Sprite 1:

[LEFT]

 [LEFT]#initclip 0

if (!_global.mx) {
    _global.mx = new Object ()
    }
_Pop Item1 (nil)
if (!_global.mx.controls) {
    _global.mx.controls = new Object ()
    }
_Pop Item1 (nil)
if (!_global.mx.controls.listclasses) {
    _global.mx.controls.listclasses = new Object ()
    }
_Pop Item1 (nil)
if (!_global.mx.controls.listclasses.DataSelector) {
    mx.controls.listclasses.DataSelector = function  () {
        super[undefined]()
        }.Initialize = function  (obj) {
        var _local3 = mx.controls.listclasses.DataSelector.mixinProps
        var _local4 = _local3.length
        obj = obj.prototype
        for ( var _local1 = 0; _local1 < _local4; _local1++){
            obj[_local3[_local1]] = mx.controls.listclasses.DataSelector.mixins[_local3[_local1]]
            }
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "dataProvider", true)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "length", false)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "value", false)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "selectedIndex", true)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "selectedIndices", true)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "selectedItems", false)
        mx.controls.listclasses.DataSelector.mixins.createProp(obj, "selectedItem", true)
        return true
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().createProp = function  (obj, propName, setter) {
        var p = propName.charAt(0).toUpperCase() + propName.substr(1)
        var _local2 = null
        var _local4 = function  (Void) {
            return this["get" + p]()
            }
        if (setter) {
            _local2 = function  (val) {
                this["set" + p](val)
                }
            obj.addProperty(propName, _local4, _local2)
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().setDataProvider = function  (dP) {
        if (this.__vPosition != 0) {
            this.setVPosition(0)
            }
        this.clearSelected()
        this.__dataProvider.removeEventListener(this)
        this.__dataProvider = dP
        dP.addEventListener("modelChanged", this)
        this.modelChanged({eventName: "updateAll"})
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getDataProvider = function  (Void) {
        return this.__dataProvider
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().addItemAt = function  (index, label, data) {
        if ((index < 0) ||  (!this.enabled)) {
            return undefined
            }
        var _local2 = this.__dataProvider
        if (_local2 == undefined) {
            _local2 = this.__dataProvider = new Array ()
            _local2.addEventListener("modelChanged", this)
            index = 0
            if ((typeof(label) == "object") ||  (typeof(_local2.getItemAt(0)) == "string")) {
                }
            }
        _local2.addItemAt(index, label)
        break //Goto(478)
        _local2.addItemAt(index, {label: label,data: data})
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().addItem = function  (label, data) {
        this.addItemAt(this.__dataProvider.length, label, data)
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().removeItemAt = function  (index) {
        return this.__dataProvider.removeItemAt(index)
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().removeAll = function  (Void) {
        this.__dataProvider.removeAll()
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().replaceItemAt = function  (index, newLabel, newData) {
        if (typeof(newLabel) == "object") {
            this.__dataProvider.replaceItemAt(index, newLabel)
            } else {
            this.__dataProvider.replaceItemAt(index, {label: newLabel,data: newData})
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().sortItemsBy = function  (fieldName, order) {
        this.lastSelID = this.__dataProvider.getItemID(this.lastSelected)
        this.__dataProvider.sortItemsBy(fieldName, order)
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().sortItems = function  (compareFunc, order) {
        this.lastSelID = this.__dataProvider.getItemID(this.lastSelected)
        this.__dataProvider.sortItems(compareFunc, order)
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getLength = function  (Void) {
        return this.__dataProvider.length
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getItemAt = function  (index) {
        return this.__dataProvider.getItemAt(index)
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().modelChanged = function  (eventObj) {
        var _local3 = eventObj.firstItem
        var _local6 = eventObj.lastItem
        var _local7 = eventObj.eventName
        if (_local7 == undefined) {
            _local7 = eventObj.event
            _local3 = eventObj.firstRow
            _local6 = eventObj.lastRow
            if (_local7 == "addRows") {
                _local7 = eventObj.eventName = "addItems"
                } 
                else if (_local7 == "deleteRows") {
                    _local7 = eventObj.eventName = "removeItems"
                    } 
                    else if (_local7 == "updateRows") {
                        _local7 = eventObj.eventName = "updateItems"
                        if (_local7 == "addItems") {
                            }
                        }
            }
        for (var _local2 in  this.selected)  {
            var _local5 = this.selected[_local2]
            if ((_local5 != undefined) &&  (_local5 >= _local3)) {
                this.selected[_local2] = this.selected[_local2] + ((_local6) - (_local3) + 1)
                }
            }
        break //Goto(948)
        if (_local7 == "removeItems") {
            if (this.__dataProvider.length == 0) {
                delete(this.selected)
                } else {
                var _local9 = eventObj.removedIDs
                var _local10 = _local9.length
                for ( _local2 = 0; _local2 < _local10; _local2++){
                    var _local4 = _local9[_local2]
                    if (this.selected[_local4] != undefined) {
                        delete(this.selected._local4)
                        }
                    }
                for (_local2 in  this.selected)  {
                    if (this.selected[_local2] >= _local3) {
                        this.selected[_local2] = this.selected[_local2] - ((_local6) - (_local3) + 1)
                        }
                    }
                }
            } 
            else if (_local7 == "sort") {
                if (typeof(this.__dataProvider.getItemAt(0)) != "object") {
                    delete(this.selected)
                    } else {
                    _local10 = this.__dataProvider.length
                    for ( _local2 = 0; _local2 < _local10; _local2++){
                        if (this.isSelected(_local2)) {
                            _local4 = this.__dataProvider.getItemID(_local2)
                            if (_local4 == this.lastSelID) {
                                this.lastSelected = _local2
                                }
                            this.selected[_local4] = _local2
                            }
                        }
                    }
                } 
                else if (_local7 == "filterModel") {
                    this.setVPosition(0)
                    }
        static var invUpdateControl:Boolean = true
        this.invalidate()
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getValue = function  (Void) {
        var _local2 = this.getSelectedItem()
        if (typeof(_local2) != "object") {
            return _local2
            }
        if (!(_local2.data == undefined)) {
            } else {
            return _local2.label
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getSelectedIndex = function  (Void) {
        for (var _local3 in  this.selected)  {
            var _local2 = this.selected[_local3]
            if (_local2 != undefined) {
                if (Item2 (nil) == null)
                return _local2
                }
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().setSelectedIndex = function  (index) {
        if ((index >= 0) &&  (index < this.__dataProvider.length) &&  (this.enabled)) {
            delete(this.selected)
            this.selectItem(index, true)
            this.lastSelected = index
            static var invUpdateControl:Boolean = true
            this.invalidate()
            } 
            else if (index == undefined) {
                this.clearSelected()
                }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getSelectedIndices = function  (Void) {
        var _local2 = new Array ()
        for (var _local3 in  this.selected)  {
            _local2.push(this.selected[_local3])
            }
        _local2.reverse()
        if (!(_local2.length > 0)) {
            } else {
            return _local2
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().setSelectedIndices = function  (indexArray) {
        if (this.multipleSelection != true) {
            return undefined
            }
        delete(this.selected)
        for ( var _local3 = 0; _local3 < indexArray.length; _local3++){
            var _local2 = indexArray[_local3]
            if ((_local2 >= 0) &&  (_local2 < this.__dataProvider.length)) {
                this.selectItem(_local2, true)
                }
            }
        static var invUpdateControl:Boolean = true
        this.updateControl()
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getSelectedItems = function  (Void) {
        var _local3 = this.getSelectedIndices()
        var _local4 = new Array ()
        for ( var _local2 = 0; _local2 < _local3.length; _local2++){
            _local4.push(this.getItemAt(_local3[_local2]))
            }
        if (!(_local4.length > 0)) {
            } else {
            return _local4
            }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().getSelectedItem = function  (Void) {
        return this.__dataProvider.getItemAt(this.getSelectedIndex())
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().selectItem = function  (index, selectedFlag) {
        if (this.selected == undefined) {
            this.selected = new Object ()
            }
        var _local2 = this.__dataProvider.getItemID(index)
        if (_local2 == undefined) {
            return undefined
            }
        if ((selectedFlag) &&  (!this.isSelected(index))) {
            this.selected[_local2] = index
            } 
            else if (!(selectedFlag)) {
                delete(this.selected._local2)
                }
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().isSelected = function  (index) {
        var _local2 = this.__dataProvider.getItemID(index)
        if (_local2 == undefined) {
            return false
            }
        return this.selected[_local2] != undefined
        }
    mx.controls.listclasses.DataSelector.prototype = new Object ().clearSelected = function  (transition) {
        var _local3 = 0
        for (var _local4 in  this.selected)  {
            var _local2 = this.selected[_local4]
            if ((_local2 != undefined) &&  (this.__vPosition <= _local2) &&  (_local2 < this.__vPosition + this.__rowCount)) {
                this.rows[(_local2) - this.__vPosition].drawRow(this.rows[(_local2) - this.__vPosition].item, "normal", (transition) &&  ((_local3) % 3 == 0))
                }
            _local3++
            }
        delete(this.selected)
        }
    mx.controls.listclasses.DataSelector = function  () {
        super[undefined]()
        }.mixins = new mx.controls.listclasses.DataSelector()
    mx.controls.listclasses.DataSelector = function  () {
        super[undefined]()
        }.mixinProps = ["setDataProvider","getDataProvider","addItem","addItemAt","removeAll","removeItemAt","replaceItemAt","sortItemsBy","sortItems","getLength","getItemAt","modelChanged","calcPreferredWidthFromData","calcPreferredHeightFromData","getValue","getSelectedIndex","getSelectedItem","getSelectedIndices","getSelectedItems","selectItem","isSelected","clearSelected","setSelectedIndex","setSelectedIndices"]
    ASSetPropFlags (mx.controls.listclasses.DataSelector.prototype,null,1)
    }
#endinitclip[/LEFT]

[/LEFT]