flash元件中的按钮按一下会返回到上一个场景的某一帧,如何实现?先谢谢了

flash元件中的按钮按一下会返回到上一个场景的某一帧,如何实现?先谢谢了,第1张

可以这样
按钮c那一帧添加如下代码(按钮c暂且命名为c)
caddEventListener(MouseEventMOUSE_DOWN,cHd);
function submitHd(e:MouseEvent)
{
gotoAndStop(488);
}
就是这样

把按钮放到你想要的地方,右键单击,选择“动作”命令,在动作编辑栏里,输入以下代码:
on(press){
gotoAndplay(xxx); //xxx是你想要跳到的帧
}
这就可以了。

写了一个元件绑定类,绑定到影片剪辑上就具有拖动跳帧功能了

/
  伪3D拖拽MC绑定类
  @author 秋色烽火
 /
class comset2getas2viewMcDragPlay extends MovieClip
{
private var _mouseX:Number = 0;
private var _mouseY:Number = 0;
private var _baseFrame:Number = 0;
/ 每帧对应的坐标差距 /
private var _dragLength:Number = 15;
/ 主场景引用 /
private var _Root:MovieClip;

/ debug输出控制 /
private var _isDebug:Boolean = false;
private var _debugText:TextField;
public function McDragPlay() 
{
super();
init();
}

private function init():Void {
onPress = onDown_func;
onRelease = onReleaseOutside = onUp_func;
}

private function initDebug():Void {
_debugText = thiscreateTextField("tDebug", thisgetNextHighestDepth(), 0, 0, 1, 1);
_debugText_x = 30;
_debugText_y = 60;
_debugTextautoSize = "left";
}

private function onUp_func():Void 
{
delete thisonMouseMove;
}

private function onDown_func():Void 
{
_mouseX = int(_Root_xmouse);
_mouseY = int(_Root_ymouse);
_baseFrame = _currentframe;
onMouseMove = onMouseMove_func
}

private function onMouseMove_func():Void 
{
var _diff:Number = _Root_xmouse - _mouseX; //计算坐标差
var _tFrame:Number = int(_diff / _dragLength); //计算偏移帧数 正或负
var _tEndFrame:Number = (_totalframes + ((_baseFrame + _tFrame) % _totalframes)) % _totalframes + 1;
//基准帧+偏移量+总帧数 取模总帧数,修正加1,就是目标帧数
thisgotoAndStop(_tEndFrame);
if (_isDebug) {
_debugTexttext = _tEndFrame + "";
}
}

/ debug set /
public function set isDebug(value:Boolean):Void 
{
_isDebug = value;
if (value && !_debugText) initDebug();
}

/ 鼠标移动偏移量 对应移动帧快慢 默认值为15/
public function set dragLength(value:Number):Void 
{
if (value < 1) return;
_dragLength = value;
}

public function set root(value:MovieClip):Void {
_Root = value;
}
}

name="FH" onclick="windowhistorystep();"> 前进
name="FH" onclick="windowhistoryback();"> 后退

你用的是as几? 2还是3?
我用3 我再研究下2的
你在影片剪辑m1里边,第25帧写一个stop();
然后把代码删掉一块,变成这样:
_rootaonRollOver = function(){
_rootm1gotoAndPlay(2);
}
_rootaonRollOut = function(){
_rootm1gotoAndPlay(26)
}
试试看,不行我再看看别的方法


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10255105.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存