打印

[AS1&2] 我做了个连线题.线能拖就是无法接上.详情在内容里描述

正确的应该是拖动鼠标连到相应的点,对就出现对的声音并连接,错的提示错误声音,不连接.

运行出现问题:
1.连线连一闪而过.即使连线是正确的.
2.没有声音.对的错的都不会发出.
3.警车的连线方向有偏差.

我自己分析如下:
1.不知道是不是hitText (_root.t1)错了,因为这样默认为this的话,但是我又新建了很多层,路径会不会有问题呢?

2.会不会可能是Actions层中的stop关系.但是不加stop()是不是会在第3桢循环播放呢?因为第3桢很快才造成连线一闪而过,而且没有声音呢?

3.警车的方向的代码都跟其他2车是一样的.为什么会只有警车的连线方向有偏差?

我用的是flash8.我刚学习flash不久.但是我有编程的基础.我有很多理解偏差,可能分析问题本身就已经有错误了还不知道呢.
是这样的.连线的教程我看的是一本书里的.书里说的不仔细.而且书里只是说了连线.前面两桢是我自己做上去的.我自己感觉很有可能是这个原因导致问题的.
望各位达人能帮我指点一下.不胜感激.

级别低不能发附件.麻烦进网络硬盘.
http://www.namipan.com/downfile/ ... 16d77160f0d3ca30600
随便弄了下...
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
珍惜生命,远离IT
超级版主发的这个只能连一条线,再连,第一条就消失了。
复制内容到剪贴板
代码:
stop();
my_sound12 = new Sound();
my_sound12.attachSound("dui");//附加位于库中的"对"声音
my_sound13 = new Sound();
my_sound13.attachSound("cuo");//附加位于库中的"错"声音
var line_num:Number = new Number();
var line:MovieClip;
for (var i = 1; i<=3; i++) {
    var btn = this["tt"+i];
    btn.id = i;
    btn.onPress = function() {
        var x = _xmouse;
        var y = _ymouse;
        line = createEmptyMovieClip("line"+line_num, line_num++);
        this.onEnterFrame = function() {
            line.clear();
            line.lineStyle(0,0,100);
            line.moveTo(x,y);
            line.lineTo(_xmouse,_ymouse);
        };
    };
    btn.onRelease = function() {
        clearLine(this);
    };
    btn.onReleaseOutside = function() {
        var tmp = this._parent["t"+this.id];
        if (tmp.hitTest(_xmouse, _ymouse, false)) {
            trace("正确");
            clearLine(this,true);
            return;
        }
        for (var k = 1; k<=3; k++) {
            var tmp = this._parent["t"+k];
            if (tmp.hitTest(_xmouse, _ymouse, false)) {
                trace("错误");
            }
        }
        clearLine(this);
    };
}
function clearLine(mc, boo) {
    delete mc.onEnterFrame;
    if (!boo) {
        line.clear();
    }
}

TOP

认证您的手机,获得手机认证图标, 更多手机认证的好处
:) :)
非常非常感谢两位斑竹的回答~~你们太厉害了。
可是这个的原理跟我本来做的原理有点不同呢。
我只能看懂每段的意思.但是还是有几个小问题想请教.希望斑竹能帮我解答一下疑问好吗
复制内容到剪贴板
代码:
var line_num:Number = new Number();
var line:MovieClip;
for (var i = 1; i<=3; i++) {
    var btn = this["tt"+i];
//这里的btn只是一个代码过程中的变量是吗?不跟按钮或者影片剪辑的实例名有关是吗?
    btn.id = i;
    btn.onPress = function() {
        var x = _xmouse;
        var y = _ymouse;
        line = createEmptyMovieClip("line"+line_num, line_num++);/
        this.onEnterFrame = function() {
            line.clear();
            line.lineStyle(0,0,100);
            line.moveTo(x,y);
            line.lineTo(_xmouse,_ymouse);
        };
    };
    btn.onRelease = function() {
        clearLine(this);
    };
    btn.onReleaseOutside = function() {
        var tmp = this._parent["t"+this.id];//这里为什么要用parent呢?
        if (tmp.hitTest(_xmouse, _ymouse, false)) {
            trace("正确");
            clearLine(this,true);
            return;
        }
        for (var k = 1; k<=3; k++) {
            var tmp = this._parent["t"+k];//加这个的含义是?k的数值有没有可能跟id相等呢?不明白555555555.
            if (tmp.hitTest(_xmouse, _ymouse, false)) {
                trace("错误");
            }
        }
        clearLine(this);
    };
}
function clearLine(mc, boo) {//这个boo是指什么呢?我不明白555555555.这个函数的整体意思我倒是了解.
    delete mc.onEnterFrame;
    if (!boo) {//还有这里一句的意思.也搞不懂.
        line.clear();
    }
}
[ 本帖最后由 clover1210 于 2008-4-15 19:16 编辑 ]
是不是我的问题问的太愚蠢了???
请帮我解释一下我在代码中注出来的问题好吗?谢谢~~~~~

TOP