- 締切済み
線の描画
使用ソフトはFlashMX2004でMacOSXを使用しています。 線の描画なんですが、他の動きとの関係で マウス位置より85上に線を描画→描画の度に新しいMCを作る→最初に作られたMCから透明になって消える という流れを目指して制作しています。 表現の関係上、btとリンケージ名をつけたボタンを1度押し、離した時に描画位置を指定し、再びボタンを押した時に描画終了という動きをさせたいと思い、以前頂いたサンプルに手を加え var osi = 0; canvases = 0; bt.onPress = function() { canNum++; if (osi == 1 &&_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { _root.createEmptyMovieClip("can"+canvases, canvases); _root["can"+canvases]._alpha = 50; _root["can"+canvases].lineStyle(4, 0xffffff); _root["can"+canvases].lineTo(_root._xmouse, _root._ymouse-85); _root["can"+canvases].onEnterFrame = function() { this._alpha--; if (this._alpha<1) { this.removeMovieClip(); } }; updateAfterEvent(); canvases++; osi = 0; }; bt.onRelease = function() { if (osi == 1 &&_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { _root["can"+canvases].moveTo(_root._xmouse, _root._ymouse-85); } } }; というスクリプトをくみましたが描画されません。 私が手を加えた箇所が間違っているのでしょうか。 一応試行錯誤はしてみたんですが解決策が見当たらず・・・。 間違っていましたらご指摘お願いします。 また、解決策がありましたらご教授お願いします。 このスクリプトがてを加える前の状態です。 this.stop(); canNum = 0; var osi = 0; canvases = 0; bt.onPress = function() { canNum++; if (_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { mX = _root._xmouse; mY = _root._ymouse; osi = 1; } else { osi = 0; } }; bt.onRelease = function() { if (_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { if (osi>0) { _root.createEmptyMovieClip("can"+canvases, canvases); _root["can"+canvases]._alpha = 50; _root["can"+canvases].lineStyle(4, 0xffffff); _root["can"+canvases].moveTo(mX, mY); _root["can"+canvases].lineTo(_root._xmouse, _root._ymouse-85); _root["can"+canvases].onEnterFrame = function() { this._alpha--; if (this._alpha<1) { this.removeMovieClip(); } }; updateAfterEvent(); canvases++; osi = 0; } } }; 長くなってしまい申し訳ありません。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
お礼
わかり辛い説明だったにもかかわらずご丁寧に説明して下さりありがとうございます。 その後試行錯誤した結果、 this.stop(); nowX = 0; nowY = 0; prevX = 0; prevY = 0; canNum = 0; var osi = 0; canvases = 0; bt.onPress = function() { canNum++; if (_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { nowX = _root._xmouse; nowY = _root._ymouse; osi = 1; } else { osi = 0; } }; bt.onRelease = function() { if (_root._xmouse>=28 && _root._xmouse<=470 && _root._ymouse>=22 && _root._ymouse<=500) { if (osi>0) { if (prevX != 0 && prevY != 0) { _root.createEmptyMovieClip("can"+canvases, canvases); _root["can"+canvases]._alpha = 50; _root["can"+canvases].lineStyle(4, 0xffffff); _root["can"+canvases].moveTo(prevX, prevY); _root["can"+canvases].lineTo(nowX, nowY); _root["can"+canvases].onEnterFrame = function() { this._alpha--; if (this._alpha<1) { this.removeMovieClip(); } }; } prevX = nowX; prevY = nowY; canvases++; osi = 0; } } }; というスクリプトで表示させたい描画が出来ました。 とても勉強になりました。 どうもありがとうございました!!