yamago 是个上传组件, 但只开发到MX的版本.... 是个很好用的组件, 如果自己写过组件的朋友一定有碰到在submit()的时候无法把form提交的问题吧... 为了方便在这里提供了 yamago 组件为何在2004无法使用的原因 首先没用过的朋友可以从这里下载
那么先安装了之后, 把组件拖到场景上直接测试, 会发现按钮会一直闪 主要原因是在2004版本当中, 组件中并没任何代码... 所以我们就要自己手动加上, 步骤如下
http://www.7880.com/Upload/2004_Pack/200481117113390.jpg" onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
#initclip
if (Yamzbrowser == undefined) {
_global.Yamzbrowser = function() {
this.loaded = undefined;
this.status = 0;
this.lcObj = this._name+getTimer();
this.browseLC = new LocalConnection();
this.browseLC.parent = this;
this.browseLC.getFile = this.getFile;
this.browseLC.getUpload = this.getUpload;
this.btnBrowse.stop();
this.btnUpload.stop();
if (MMSave == undefined) {
if (Yamzbrowser.iemac) {
this.btnBrowse.onRelease = this.release;
this.btnBrowse.onRollOver = nextFrame;
this.btnBrowse.onRollOut = prevFrame;
} else {
this.btnBrowse.onRollOver = this.rollOver;
}
this.btnUpload.onRelease = this.upload;
this.btnUpload.onRollOver = nextFrame;
this.btnUpload.onRollOut = prevFrame;
this.btnUpload.enabled = false;
} else {
this.btnBrowse.onRollOver = (this.btnUpload.onRollOver=nextFrame);
this.btnBrowse.onRollOut = (this.btnUpload.onRollOut=prevFrame);
}
Yamzbrowser.list.push(this);
};
Yamzbrowser.prototype = new MovieClip();
Object.registerClass("idYamzbrowser", Yamzbrowser);
Yamzbrowser.iemac = _root.__yamzbrowser == "Microsoft Internet Explorer";
delete _root.__yamzbrowser;
Yamzbrowser.stageHeight = Stage.height;
Yamzbrowser.stageWidth = Stage.width;
Yamzbrowser.list = [];
Yamzbrowser.prototype.getFile = function(pData) {
var lParent = this.parent;
this.close();
lParent.target = pData;
lParent.txtBrowse.hscroll = lParent.txtBrowse.maxhscroll;
lParent.btnUpload.enabled = true;
for (var z in Yamzbrowser.list) {
var lRef = Yamzbrowser.list[z];
if (lRef != this.parent) {
lRef.browseLC.close();
lRef.btnUpload.prevFrame();
lRef.btnUpload.enabled = false;
lRef.txtBrowse.text = "";
}
}
};
Yamzbrowser.prototype.getUpload = function(pStatus, pFile, pParam) {
var lParent = this.parent;
this.close();
lParent.btnUpload.prevFrame();
lParent.btnBrowse.enabled = true;
lParent.loaded = true;
lParent.status = Number(pStatus);
lParent.txtBrowse.text = "";
lParent._enabledBrowse(true);
lParent.onUpload(pFile, unescape(pParam));
};
Yamzbrowser.prototype.upload = function() {
var lParent = this._parent;
this.enabled = false;
lParent.btnBrowse.enabled = false;
lParent.browseLC.connect(lParent.lcObj);
getURL(((((("
javascript :upLoadFile(\''''''''"+lParent.lcObj)+"\'''''''',\''''''''")+lParent.script)+"\'''''''',\''''''''")+escape(lParent.data.split("\''''''''").join("
\\\''''''''")))+"\'''''''');");
lParent.loaded = false;
lParent._enabledBrowse(false);
lParent.startUpload();
};
Yamzbrowser.prototype.rollOver = function() {
var lParent = this._parent;
lParent.browseLC.connect(lParent.lcObj);
this.onEnterFrame = lParent.rollOut;
this.onRollOver = null;
var lPos = this.getBounds();
var lMin = {x:lPos.xmin, y:lPos.ymin};
var lMax = {x:lPos.xmax, y:lPos.ymax};
var lMouse = {x:this._xmouse, y:this._ymouse};
this.localToGlobal(lMin);
this.localToGlobal(lMax);
this.localToGlobal(lMouse);
if (Stage.scaleMode == "noScale") {
var lHeight = Yamzbrowser.stageHeight;
var lWidth = Yamzbrowser.stageWidth;
} else {
var lHeight = Stage.height;
var lWidth = Stage.width;
}
getURL(((((((((((((((((((((((("
javascript :browseEnabled(\''''''''"+lParent.lcObj)+"\'''''''',\''''''''")+Stage.scaleMode)+"\'''''''',\''''''''")+Stage.align)+"\'''''''',")+lWidth)+",")+lHeight)+",")+lMin.x)+",")+lMin.y)+",")+lMax.x)+",")+lMax.y)+",")+lMouse.x)+",")+lMouse.y)+",")+this.useHandCursor)+");");
this.nextFrame();
};
Yamzbrowser.prototype.rollOut = function() {
var lParent = this._parent;
if (!this.hitTest(_root._xmouse, _root._ymouse, true)) {
lParent.status = 0;
this.onRollOver = lParent.rollOver;
delete this.onEnterFrame;
this.prevFrame();
}
};
Yamzbrowser.prototype.release = function() {
var lParent = this._parent;
lParent.browseLC.connect(lParent.lcObj);
getURL(("
javascript :clickIEMac(\''''''''"+lParent.lcObj)+"\'''''''');");
};
Yamzbrowser.prototype._enabledBrowse = function(pBool) {
for (var z in Yamzbrowser.list) {
Yamzbrowser.list[z].btnBrowse.enabled = pBool;
}
};
Yamzbrowser.prototype.onUpload = function(pFile, pParam) {
trace("file uploaded: "+pFile);
trace("param: "+pParam);
};
}
#endinitclip
格式发布, 当然写过组件的朋友也很清楚, 也知道怎样修改一次, 以后就不用修改了吧... 或者有兴趣的朋友可以写成 2004 的组件格式 :) 步骤 4: 在html的部分依照yamago提供的例子把所需的javascript代码加入就可以了 :), 这里把代码各别以颜色分出来了...