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:
-
Error Symbol=Sprite 1, layer=#initclip, frame=1:Line 6: Syntax error.
_Pop Item1 (nil)
and,
-
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]