当然这将是一个简单的修复,我只是没有看到树木。我有一部名为scroller_mov的movieclip电影。里面有15个名为pic1至pic15的动画片段。
我的代码位于一帧上,与scroller_mov处于同一级别。只想动态分配点击动作到pic1 - pic15动画片段!尝试过硬编码链接和动态,但没有快乐!其他一切都很好。谢谢,如果你能帮忙的话!
stop();
lv_obj = new LoadVars();
lv_obj.load("flash_carou_data2.php");
lv_obj.onLoad = function(success):Void{
product_mod.product_model = this.product_models;
var products_data:Array = product_mod.product_model.split(",");
scroller_mov.prodmod1 = products_data[0];
for (i=0;i<15;i++){
products_data[i] = products_data[i].split("&");
scroller_mov["prodmod" + (i+1)] = products_data[i][0];
scroller_mov["prodprice" + (i+1)] = products_data[i][3];
scroller_mov["pic" + (i+1)].loadMovie(products_data[i][2]);
scroller_mov["pic" + (i+1)].onRelease = function () {
getURL("http://www.mysite.com");
//getURL(products_data[i][1]);
}
};
};
答案 0 :(得分:2)
您可以按照在代码中执行此操作的方式执行此操作 - 但您必须等待loadMovie()
完成。加载MovieClip时,成功完成后将删除其所有属性。
设置间隔以检查MovieClip的getBytesLoaded()
和getBytesTotal()
方法,然后在剪辑完全加载时分配onRelease函数。这是一个简单的例子,您可以复制并使用相同的checkLoaded
函数:
_root.test = _root.createEmptyMovieClip ("test01", _root.getNextHighestDepth());
_root.test.loadMovie ( "test.swf");
_root.checkLoaded = function (clip) {
var bytesLoaded = clip.getBytesLoaded();
var bytesTotal = clip.getBytesTotal();
if (bytesLoaded > 0 && bytesLoaded == bytesTotal) trace ("loaded");
else return;
clearInterval (_root.interv);
clip.onRelease = function () {
trace ("release");
getURL("http://www.google.com");
}
}
_root.interv = setInterval( _root, "checkLoaded", 100, _root.test);
您可以将间隔分配给任何变量,它不需要属于_root
。确保setInterval
的第一个参数是包含checkLoaded
方法的对象,最后一个参数是您要加载的MovieClip。