var clips:Array = [tu1, tu2, tu3, tu4, tu5, tu6, tu7, tu8, tu9];// 存储所有影视剪辑的数组 var STATE_NORMAL:Number = 1; var STATE_OVER:Number = 2; var STATE_SELECTED:Number = 3; for (var i:Number = 0; i < clips.length; i++) { var clip:MovieClip = clips[i]; clip.gotoAndStop(STATE_NORMAL); clip.selected = false;// 添加一个selected属性并初始化为false clip.useHandCursor = true; clip.onRollOver = function() { trace("onRollOver called"); this.gotoAndStop(STATE_OVER); }; clip.onRollOut = function() { trace("onRollOut called"); if (!this.selected) { this.gotoAndStop(STATE_NORMAL); } }; clip.onRelease = function() { trace("onRelease called"); if (this.selected) { return; } for (var j:Number = 0; j < clips.length; j++) { var c:MovieClip = clips[j]; c.selected = false; c.mc_normal._visible = true; c.mc_over._visible = false; c.mc_selected._visible = false; } this.selected = true; this.mc_normal._visible = false; this.mc_over._visible = true; this.mc_selected._visible = true; }; }为啥要切换帧
时间: 2023-06-24 21:08:32 浏览: 126
这段代码是一个简单的交互式影视剪辑选择器,它包含了影视剪辑的状态和选择属性。当鼠标滑过一个影视剪辑时,它将切换到 STATE_OVER 状态,当鼠标滑出时,如果它没有被选中,它会切换回 STATE_NORMAL 状态。当用户点击一个影视剪辑时,它将被选中并且其他的影视剪辑将会变回未选中状态。为了实现这些效果,这段代码需要通过切换帧来改变影视剪辑的外观和状态。这些帧可能是不同的图像或者文本,它们代表了影视剪辑的不同状态。
相关问题
var clips:Array = [tu1, tu2, tu3, tu4, tu5, tu6, tu7, tu8, tu9]; // 存储所有影视剪辑的数组 var STATE_NORMAL:Number = 1; var STATE_OVER:Number = 2; var STATE_SELECTED:Number = 3; for (var i:Number = 0; i < clips.length; i++) { var clip:MovieClip = clips[i]; clip.gotoAndStop(STATE_NORMAL); clip.selected = false; // 添加一个selected属性并初始化为false clip.useHandCursor = true; clip.addEventListener(MouseEvent.ROLL_OVER, onRollOver); clip.addEventListener(MouseEvent.ROLL_OUT, onRollOut); clip.addEventListener(MouseEvent.CLICK, onClick); } function onRollOver(event:MouseEvent):void { trace("onRollOver called"); updateState(event.currentTarget as MovieClip, STATE_OVER); } function onRollOut(event:MouseEvent):void { trace("onRollOut called"); var clip:MovieClip = event.currentTarget as MovieClip; if (!clip.selected) { updateState(clip, STATE_NORMAL); } } function onClick(event:MouseEvent):void { trace("onClick called"); var clip:MovieClip = event.currentTarget as MovieClip; if (clip.selected) { return; } for (var j:Number = 0; j < clips.length; j++) { var c:MovieClip = clips[j]; c.selected = false; updateState(c, STATE_NORMAL); } clip.selected = true; updateState(clip, STATE_SELECTED); } function updateState(clip:MovieClip, state:Number):void { clip.gotoAndStop(state); if (state == STATE_SELECTED) { clip.mc_normal.visible = false; clip.mc_over.visible = false; clip.mc_selected.visible = true; } else if (state == STATE_OVER) { clip.mc_normal.visible = false; clip.mc_over.visible = true; clip.mc_selected.visible = false; } else { // STATE_NORMAL clip.mc_normal.visible = true; clip.mc_over.visible = false; clip.mc_selected.visible = false; } }改为as2语言
var clips:Array = [tu1, tu2, tu3, tu4, tu5, tu6, tu7, tu8, tu9]; // 存储所有影视剪辑的数组
var STATE_NORMAL:Number = 1;
var STATE_OVER:Number = 2;
var STATE_SELECTED:Number = 3;
for (var i:Number = 0; i < clips.length; i++) {
var clip:MovieClip = clips[i];
clip.gotoAndStop(STATE_NORMAL);
clip.selected = false; // 添加一个selected属性并初始化为false
clip.useHandCursor = true;
clip.onRollOver = function() {
trace("onRollOver called");
updateState(this, STATE_OVER);
};
clip.onRollOut = function() {
trace("onRollOut called");
var clip:MovieClip = this;
if (!clip.selected) {
updateState(clip, STATE_NORMAL);
}
};
clip.onClick = function() {
trace("onClick called");
var clip:MovieClip = this;
if (clip.selected) {
return;
}
for (var j:Number = 0; j < clips.length; j++) {
var c:MovieClip = clips[j];
c.selected = false;
updateState(c, STATE_NORMAL);
}
clip.selected = true;
updateState(clip, STATE_SELECTED);
};
}
function updateState(clip:MovieClip, state:Number):void {
clip.gotoAndStop(state);
if (state == STATE_SELECTED) {
clip.mc_normal._visible = false;
clip.mc_over._visible = false;
clip.mc_selected._visible = true;
} else if (state == STATE_OVER) {
clip.mc_normal._visible = false;
clip.mc_over._visible = true;
clip.mc_selected._visible = false;
} else {
// STATE_NORMAL
clip.mc_normal._visible = true;
clip.mc_over._visible = false;
clip.mc_selected._visible = false;
}
}
阅读全文