1read 100read
2012年1月2期FLASH10: ActionScript 誰かが物凄い勢いで解答するスレ30 (189) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
12: 【者】イーホームズ藤田社長【耐震偽造】 (396)
13: あなたの見たいFLASH探します 20 (405)
14: Lenore(レノーア) (707)
15: 【なつみ】 こしあん堂ファンスレ 【23STEP!】 (918)

ActionScript 誰かが物凄い勢いで解答するスレ30


1 :11/12/25 〜 最終レス :12/01/27
AcitonScriptのことなら
初歩的な質問でもなんでもおk
見れない、保存したい、flashを作りたいはスレ違い
下記の関連スレ、超基本的な質問へ。
●質問する時は自分の環境を書く(AS2,AS3の別も)
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く
前スレ
ActionScript 誰かが物凄い勢いで解答するスレ29
http://toro.2ch.net/test/read.cgi/swf/1309349827/
関連スレ
Flashの超基本的な質問はここでしろ! part42
http://hibari.2ch.net/test/read.cgi/swf/1305783143/
※初心者は↑こちら推奨
ActionScript ライブラリ総合
http://hibari.2ch.net/test/read.cgi/swf/1308658905/

2 :
いちおつ

3 :
AS3で質問です
ムービークリップにフィルタをかけると、widthプロパティの値がフィルタのぶんを含んだ値になりますよね?
たとえば、本体が64pxの円オブジェクトにぼかし15pxくらいの光彩フィルタとかかけると、160くらいの数値が返ってきます
ここからフィルタの分を除外して、本体の64pxという値を得るのに賢い方法ってないんですかね?
一応、下の感じでいったんフィルタ無効にして、変数に格納してからまた有効にすれば取得自体はできるんだけど、なんかすごく頭の悪いことをやっている気がする今日この頃
var my_filters = this.filters;
this.filters = [];
realWidth = this.width;
realHeight = this.height;
this.filters = my_filters;

4 :
AS3,CS4でタイルリスト(TileList)のスクロールで質問です。
SWFはうpしています。
http://www1.axfc.net/uploader/Flash/so/2122 → 「再生する | click here to view.」
MC(mcA)内に内包されたTileListの各タイル(要素?)にMC(mc0〜mc9の10個)をソースとして
設定し、mcAをステージに置いています。 親子構造は下記のようになります。
 親側) Stage -- mcA -- TileList -- [各要素(mc0〜mc9)] (子側
これでUpしたSWFのようにスクロールは出来たのですが、どれかのタイルをクリックすると
スクロールが元に戻ってしまいます。
traceで動作確認したところタイルクリックの度に初期化されるようで、mcA で定義している
addEventListener(Event.ADDED, this_newed, false, 0, true); は removeEventListener
したはずですが関数this_newed がクリックで呼び出されます。
 
案としては verticalScrollPosition で位置を把握し、戻ったスクロール位置を再度設定する
方法を考えましたが、もっと良い方法を探しています。
※というか、何故も初期化?(元に戻る?)
何かアドバイス願います。

5 :
(追記です)
UpしたSWFの右上のボタンを押すとmcAに内包されたTileListが表示されます。
ブラウザでの表示手順も修正します
http://www1.axfc.net/uploader/Flash/so/2122 
→ 「Flash_2122.swf をダウンロードします」のボタンを押す
→ 「再生する | click here to view.」 をクリック
----------------------
ちなみに、昔から使っていたSWFアップローダー http://swfup.info/upload.php
は下のエラーが出て使えないです(Firefox8.0.1使用)
Warning: fputs(): supplied argument is not a valid stream resource in /var/www/domain/swfup.info/upload.php on line 306

6 :
>>3
サイズ取得って、当たり判定とか取るの?
とりあえず一番簡単な方法は、表示用のMCとサイズ取得用のMCを宣言すること。
場合によるけど、フィルターをかける場合はBitmapDetaに一旦落としてそいつにかけると軽いよ。
特に、ほとんどフレームが変わらないMCや、大量に同じMCを使う場合に置き換えると効果が高いよ。
書込み元のMCはaddChildしてなくても、BitmapDetaには書き込めるので、表示する必要はなし。
詳しいやり方は、「AS3 プリレンダリング」でググればいい。

7 :
>>6
>とりあえず一番簡単な方法は、表示用のMCとサイズ取得用のMCを宣言すること。
さっそくのレス感謝です
なるほど、そのほうがシンプルですね
>場合によるけど、フィルターをかける場合はBitmapDetaに一旦落としてそいつにかけると軽いよ。
忠告どうもです
プリレンは一度試したいと思っていたので、この機会に勉強してみます

8 :
(TileListのスクロールについて)
色々試しましたがやっぱり変な動作をします。
どうやらASファイルを使ってMCを継承作成したオブジェクト内にTileListを
addChildするとダメのようです。 ステージに予め設置したMC内にaddChildしたら
問題なく動作するのですが・・・
とりあえず回避策で対処しました。 ありがとうございました。

9 :
AS3でCS4のWinXPです。 MovieClipのClass型への変換が分かりません。
まず mc0 = new MovieClip(); として、mc0.name = "aBoxes" と名付けました。
これで var class0:Class = mc0 as Class; 

var class0:Class = getDefinitionByName(mc0.name) as Class;
2パターンを試しましたが、前者は traceで null になり、後者は
 ReferenceError: Error #1065: 変数 aBoxes は定義されていません。
という警告がでました。
どうしたら良いでしょうか?

10 :
>>9
なぜ、MovieCripをClassに代入?
(継承元のため)Objectには代入できるけど、これではだめ?
あなたの実装でClassに代入する理由を教えてください。

11 :
>>10
どうも。経緯を説明しますと、>>4-5でTileListの生成を試みた者ですが、一応目的の
形状でタイルが並べられました。
このとき、タイルの要素の元データを dataProvObj = new DataProvider(); で設定するため
var sheetProp:Array = new Array();
sheetProp[0] = {label:"my first-baby", source:R};
sheetProp[1] = {label:"Morning", source:G};
・・・
・・・
sheetProp[9] = {label:"Hello", source:X};
for (var idx:int=0; idx<sheetProp.length; idx++)
dataProvObj.addItem(sheetPropArr[idx]);
}
として表示させました。 ここでsourceの「R」とか「G」はCS4のライブラリ(リンケージの
書き出し名が「R」とか「G」)に由来したもので、これらを他のオブジェクト(MC)に随時変更
できるようにしたく思いました。 
※つまり、TileList要素(タイル)の中身をダイナミックに変更したい。
trace(sheetProp[0].source) で調べてみると、[Class R] とか [Class G] だったので
上のように
var class0:Class = mc0 as Class; または
var class0:Class = getDefinitionByName(mc0.name) as Class;
として
sheetProp[0].source = class0;
で代入すれば良いと思ったのですが、Class型に変換できなかったです。
まとめると、「TileListの要素に任意のMCを随時変更して使いたいから型変換したい」ということです。

12 :
変換とかしなくても、constractorプロパティを入れてやればいいんじゃねーかな
sheetProp[0].source = mc0.constractorてな具合に

13 :
>>12
さんきゅうです。なんとなく出来ました。
mc0 = new MovieClip();
// mc0にgraphicsでベタ塗り矩形を描画
sheetProp[0].source = mc0.constractor;
trace(sheetProp[0].source) は以前は null だったのですが、[class MovieClip]
と出ました。 ・・・ ただし、TileListの要素(ベタ塗り矩形が出るはず)は真っ白です。
そこで、
mc0 = new R();//リンケージの書き出し名が「R」とか「G」
sheetProp[0].source = mc0.constractor;
ではTileListの要素に目的の図形が出ました。
どうやら、(ASファイル由来はどうか分かりませんが)ライブラリのリンケージから
呼び出せばOKのようです。
以上、お礼と報告まで。

14 :
そりゃMovieClipクラス入れてもねぇ・・・何も出るわけ無いわ
そのRとかGってのは、MovieClipクラスを継承して作られたクラスであって
ただのMovieClipクラスとは別物だし

15 :
FLASH DEVELOP上でflパッケージを使って、Combo Boxとかを使おうと思っています。
http://log.xingxx.com/2009/04/flashdevelopflashcs4fl.html
http://d.hatena.ne.jp/turipat/20090527/1243442885
http://d.hatena.ne.jp/kamip/20090812/1250048777
http://blog.wszz.org/archives/262
上記等のURLの手法を用いていろいろやってみたんですが、いずれの手法でもFLASH DEVELOPで実行してみると
エラーは出ずにデバッグ画面が「応答なし」になってしまいます。
なぜだか分かる方いらっしゃいますか?PCには一応CS4が入っています。

16 :
なんだよ一応って・・・・

17 :
またお邪魔しますモバイルAIRアプリをFLEXで作っている者です。
実はあるビューが遷移時やアプリ終了時等に破棄される直前に送られるイベントを探しているのですが、
生成時のものは幾つか見つかるのですが、その破棄される時の物がなかなか見つかりません。
どなたかその様なものがあれば教えてください。
ちなみに自分で見つけたうちの一つdeactivateは画面が切り替わった時だけ、もう一つexitStateは多分ビューが破棄された後に出されているのでしょう。あるビューにそのリスナーを置いても反応が有りません。

18 :
すんません。教えてください。
画面にtextinputとlistを設置してtextinputに入力された値に応じて動的にlistの中身を変化させたいのですが
(googleなどで検索する時に途中まで入力すると検索候補が出てくるようなイメージです)
どうやれば実装できるのでしょうか?ヒントだけでもいいいので教えてください。

19 :
>>18
文字入力毎に発生するイベントを調べて見たら良いかもしれません。

20 :
AS3,WinXP-Pro,CS4(Player10.0,AIR1.5)
テキストフィールド(tF0)をUIScrollBarでスクロールしながらここから複数行(12行分)
抽出し、別のテキストフィールド(tF1)に代入していますが、ある特定の文字列に差し
掛かったときスクロールが無効になり、複数行抽出ができなくなって困っています。
※SWFでもAIRでも同じ症状として出ます。
具体的には、tF0が100行くらいあったとき
0行目〜11行抽出 →(スクロール)→ 1行目〜12行目抽出 →(スクロール)
→ 2行目〜13行目抽出 → ・・・ n行目〜n+11行目抽出 ・・・
のとき、tF0の n 行目に path という単語と var という単語が出現すると抽出が出来ず
スクロールも不可になります。
試しに、pathを pat とか pat0 にすると問題なく動作し、var も va とか va0 でOKでした。
抽出は、n行目とn+11行目の文字位置を tF0.getLineOffset(行インデックス) で把握し、
 tF1.text = tF0の文字列.substring(開始位置, 終了文字位置);
でしています。
動作が止まった場合、もう一度UIScrollBarを操作するとSWF(AIR)ウインドウの上部の
SWF(AIR)のタイトルの横に (応答なし) というメッセージが出ます。
考えられる原因は何でしょうか?
-------
なお、スクロールイベントは try 〜 catch (errorEvt:Error) {// エラー時の処理 }
で対処するようにしていますが、何も出ません。 
※ErrorクラスにはIllegalOperationErrorとか色々ありますが、このtry 〜 catch 用に
適切なものは何かありますか?

21 :
それってエラー無く動いてるswfでダイナミックテキストからテキスト入力へ
クリック→ドラッグ選択、コピペしようとしてるって事?
実際に見ないとわからんな 現象が現れる最小限のコードでのswfをどっかにうpってみてよ

22 :
var camera:Camera = Camera.getCamera();
var video:Video = new Video(320,240);
var pngEncoder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = pngEncoder.encode(bmp);
if (camera){省略}
btnCapturer.addEventListener(MouseEvent.CLICK,createStill);
function createStill(eventObject:MouseEvent):void
{var bitmpdt:BitmapData = new BitmapData(320,240);
bitmpdt.draw(video);
var bitmp:Bitmap = new Bitmap(bitmpdt);
bitmp.x = 400;
bitmp.y = 50;
addChild( bitmp );}
var loader:URLLoader = new URLLoader();
var file:FileReference =new FileReference();
file.save("data","xxx.png")
カメラの映像からキャプチャした画像をデスクトップに保存したいのですが、
『未定義である可能性が高いメソッド PNGEncoder の呼び出しです。』
というエラーが出てしまいます。
(上記したasはぐぐって調べたものを張り合わせたものです。)
cs5使用です。大変初歩的で申し訳ありませんが、教えていただけるとありがたいです。

23 :
importしなきゃならないやつなんでない?

24 :
PNGEncoderはmxパッケージだろ

25 :
Flash Lite 3.1 対応の携帯用に
電子辞書みたいな機能を持つswfを作りたいのです
今suzukaで作ったフラッシュに
再生したり停止したりするボタンを付けたところ
PC上ではマウスでクリックしてうまく動いたのに
携帯でタッチしても停止してくれませんでした
どうすればいいんでしょうか?
ボタンにはこういうスクリプトが入っています
マウスでクリックしたらきちんと止まったのに
携帯上でボタンをタッチしても何も起きないですOTL
on (release) {
this.stop();
}

26 :
よくわからんな そのケータイってスマホだよね?
スマホならPCと同じようにボタン(インスタンス)クリックで動作すると思うんだけど

27 :
>>26
スマフォじゃないです
http://keitaiall.jp/930SC.html
です

28 :
今少し状況が分かってきました
上下左右キーでフォーカスを動かしてOKボタンで停止させることは出来ました
ただ画面にタッチすると停止してくれないようですOTL

29 :
http://help.adobe.com/ja_JP/AS3LCR/Flex_4.0/flash/events/TouchEvent.html#top
今アドビのサイト見てきたんですが
もしかしてFlash Lite 3.1ではまだタッチは使えないのでしょうか?

30 :
なんかFlash Lite 3.1でタッチは使える様です
http://thinkit.co.jp/article/776/1
何で自分の携帯だと全然ボタンをタッチできないですかOTL

31 :
>>30
ケータイがFlashのタッチに対応してないんじゃない?

32 :
タッチ時のonイベント内でtraceさせても何も出ないの?
ダイナミックテキストエリアを画面内に作ってトレースしたい情報を出力して確認してみ
それからどんなボタンインスタンスかわからないけど ボタン内のヒットエリアはちゃんと付けてる?
ヒットエリア無しのテキスト文字のみのボタンだとスマホ側で超反応しづらい
それからsuzukaってのが気になるw

33 :
>>30
ああああああああああああぁぁぁぁああああOTL
>>31
「ダイナミックテキストエリアを画面内に作ってトレースしたい情報を出力して確認してみ」
意味が全く分からないです・・・
文字を■にして文字の黒い部分を増やしてやってみましたけど駄目でした

34 :
作ったのはこれです
ダウンロードパスはpです
http://loan.tf-bank.net/10MB/dl/1326006491.swf

35 :
色々と勘違いしてるっぽいな 「通過」ってなんだおw マウスオーバーの事だろ?
ケータイにはマウスオーバーやロールオーバーの機能は無いじゃん
だからオーバー時のコードはケータイでは実行されない
あと基本的な事はハクヒンさんとこで勉強してくれ ttp://hakuhin.jp/

36 :
>>34
flaでupしろよ

37 :
>>35
とりあえずボタンの設定を全部入れてみたと言う感じでして・・・
http://iup.2ch-library.com/i/i0528853-1326028217.jpg
>>36
flaで出力する方法はまだ分からないです・・・。

38 :
>>37
もしかしてAdobeFlashじゃない?

39 :
おもいっきりsuzuka言ってるじゃん

40 :
>>39
すまぬ
suzukaはflaファイルに出力できないの?

41 :
>>40
ごめんなさい、昨日初めてフラッシュ作ったばっかりなんで
ソフトの機能もまだよく分かってないです
メニュー見てもfla出力っぽいものはなさそうですし・・・

42 :
あるわけねえだろ…

43 :
>>41
http://flapg.com/slot.swf
これは押せる?

44 :
サウンド関連の質問でつ(AS3)
サウンドクラスを作成 通常サウンドとループサウンドの2種類があり
ループサウンドのみSoundChannelインスタンス、ボリューム設定メソッドをstaticにしてクラス名でアクセスしてます
ボリューム値も2種類用意しループサウンドはstaticにしてます
ループサウンドを再生中に通常サウンドを再生するとループサウンドの音量が若干下がります
インスタンス、ボリューム値を分けているにもかかわらずなぜ干渉してしまうのか?
もしかして全体の合計音量にMAXがあって自動で調整されてるって事なの?

45 :
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。

46 :
>>43
携帯でも
stopのボタンがクリックできます

47 :
>>46
FlashLiteのASは1?2?
1ならon(release){であってて
2ならムービークリップ.onMouseDown=function(){
っぽい

48 :
>>47
すいません
意味が良く分からないので調べてきます
有難うございます

49 :
>>47
もしかして
Flash Lite 3.1 はActionScript2っていう仕様で作ればいいっていうことは
以前調べて分かってたんですが
その事でしょうか?

50 :
>>49
そう
AS2で作ればいいと思う
FlashProでもFlashLite3.1は初期設定がAS2だから
AS1で作りたいなら設定を変えるかFlashLite1.1にするかしかないと思う

51 :
ちょっとどこで聞いたらいいか分かんないので
ここで聞かせてもらいますが、wordpressで
swf上げたんだけど、その中で読み込むimageや
xmlのURLが指定してるのと変わってしまうみたい
なんだけどどなたか分かる人、教えて下さい。

52 :
>>50
なんか、作るんなら
FlashPro買った方がいいのかと悩みますが
新しい携帯買ったらアンドロイドになるだろうし
そうしたらフラッシュじゃなくて他の言語で作りそうな予感・・・
うううううん・・・

53 :
suzuka専用スレを見つけたんでas2行けるのかとか聞いてきます

54 :
アンドロイド向けのほうがAIRいいのに

55 :
>>54
AIR重たくない?

56 :
つか静的なモノならHTMLとJavaScriptで作った方が早いんじゃないかと

57 :
>>56
それも考えたんですけど
メーカーの方で
スクリプト設定をOFFにしておかないと個人情報が
どうのこうのという携帯の機種なもので・・・

58 :
すいません。
戻ってきました。
だいぶん色々出来る様にはなってきたんですが
(パスはpです)
http://loda.jp/0tm/?mode=pass&idd=1672
結局、
onMouseDown=function(){
の使い方が全く分かりません
動いているキノコ(インスタンス名ugoku)がスプライトで
そのスプライトに
ugoku.onMouseDown=function(){
stop();
}
というのをくっつけてみたんですけど
「onClipEventまたはonが必要です」
っていうエラーが出てしまって
そもそもクリックされたら動いてるキノコがとまるんじゃないの???
っておもってしまいます
少し解説をお願いできないでしょうか?

59 :
paraflaだとタイムラインに
on(press)

60 :
途中で書き込んでしまった
エラーメッセージのまんまなんだけど
ムービークリップ(suzukaでいうスプライト)にスクリプトを記述する場合は
onClipEventかonで始まるイベントハンドラを使わないといけない
ttp://www.geocities.jp/para_core/kouza/as.html
ugoku.onMouseDown=function()を使ってキノコをクリックしたときに何かさせるなら
(_root)
1フレーム スプライト(ugoku)
2フレーム スクリプト(ここにugoku.onMouseDown=function(){)
3フレーム 停止
これでできんじゃね?

61 :
フルフラッシュサイトを作っている途中で、
ボタン作成中に行き詰ってしまっています。
POLICYボタン BUISINESSボタン、PARTHER、COMPANYなど、4つのボタンに逆再生のロールオーバー、アウトをいれたいのですが、
以下のプログラム文(>>61)を他のボタン4つにも適応させるにはどうすればよいでしょうか?
全くの初心者ですがお願いします。

62 :
//再生を停止
but_policy.stop();
// 各変数の初期化と宣言
var nMove:int = 0;
var nNextFrame:int;
// 鉢植えMC に EnterFrame イベントリスナーを登録 実行関数 playalp
but_policy.addEventListener(Event.ENTER_FRAME,plaYalp);
// 関数 plaYalp の定義
function plaYalp(evt:Event):void {
if (nMove != 0) {
var nNextFrame = evt.target.currentFrame+nMove;
if (1<=nNextFrame && nNextFrame<=evt.target.totalFrames) {
evt.target.gotoAndStop(nNextFrame);
} else {
nMove = 0;
}
}
};

63 :
// policym MC 内の policyボタンに
// RollOver イベントリスナーを登録 実行関数 potRollOver
but_policy.policy.addEventListener(MouseEvent.ROLL_OVER,potRollOver);
// 関数 potRollOver の定義
function potRollOver(evt:Event):void {
nMove = 1;
}
// policy,MCの policyボタンに
// ROLL_OUT イベントリスナーを登録 実行関数 potRollOut
but_policy.policy.addEventListener(MouseEvent.ROLL_OUT,potRollOut);
// 関数 potRollOut の定義
function potRollOut(evt:Event):void {
nMove = -1;
};

64 :
Actionscript2 で上から落下してきたオブジェクトがバウンドして
バウンドの幅がだんだん小さくなって行って止まるというのは
どのようにしたらよいのでしょうか。
横に弾んでいくのではなく、同じ場所で縦にバウンドする動きです。

65 :
Flex4.6でアンドロイドのアプリを作っています。
<s:Scroller width="500" height="100">
<s:HGroup >
<s:TextArea></s:TextArea>
<s:TextArea></s:TextArea>
<s:TextArea></s:TextArea>
</s:HGroup>
</s:Scroller>
とMXMLを書いて実行、どれかのTextAreaに文字を書いて
スクロールさせると一瞬文字がスクロールに付いてこない現象が起きます。
直す方法は無いでしょうか?

66 :
>>64
ttp://hakuhin.jp/as/move.html#MOVE_05
縦にバウンドさせるならX座標をいじらなければいい

67 :
絶対パスで行けました

68 :
検索でうまく答えがみつからないので質問させて下さい。ほぼ初心者です。
【使用ソフト】Adobe Flash Pro CS5 / AS2.0
【やりたい事】外部テキストを読み込んで中身を配列に取り込んだ後、htmlを維持したまま表示させたい。
【困っている事】外部テキストを配列に取り込んで順番に表示させる事はできているが、htmlが反映されない。
例)
「一行目
 二行目」と表示したいのに
「一行目<br />二行目」と表示されてしまう。
【実際のソースの一部】※
System.useCodepage = true; //文字化け防止
myLV = new LoadVars(); //読み込む器の準備
myLV.load('text.txt'); //外部テキストファイルを読み込む
myLV.onLoad = function () { //外部ファイルを読み込んだら実行
html = new Array(); //配列の準備
html = myLV.html.split(','); //外部テキストの要素を「,」で区切って配列に入れる
text.text = html[0]; //配列の一番目を表示←〓ここでhtmlが効かない〓
}
-------
※内容を順番に表示させる為の処理は長くなるので省略しました
インスタンス名「text」で変数は設定していません。
また、テキストのプロパティで「htmlにレンダリングする」にはチェックを入れてあります。
-------
【試してみた事】
単純に外部テキストを読み込んで、インスタンス名をつけず変数名を指定したテキストエリアではhtmlが反映されました。
動的に表示を変化させるエリアではhtmlを反映させる方法はないのでしょうか?

69 :
ようわからんがtextでなくhtmlTextなんじゃないのそれ。

70 :
>>69 さん
おっしゃる通りに
text.htmlText = html[0];
にしたところ、問題なく反映されました!
すみません、そんな事も知りませんでした。
ありがとうございます。助かりました!
頑張って完成させます!

71 :
すいませんAIRスレで聞き直します。

72 :
as3で質問です
ステージに複数のシンボルhogeがあって、以下みたいにまとめて記述したいのですが、エラーになります。
どこがいけないのでしょうか?
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,function(event:MouseEvent){
this["hoge_" + i].startDrag();
});
}

73 :
>>72です
自己完結しました。
失礼しました。

74 :
>>72です
やっぱり自己完結出来てなかった…

75 :
>>74
hogeの後のアンダーバーを消したら行けた

76 :
>>75
行けねえっすよ…
this["hoge_" + i].startDrag()
のiに値が渡ってないっぽい??
どうしたら…??

77 :
>>76
同時にDragはできないんではないの?
MouseOut時にstopDragするとか
ひとつだったらできるんでしょ?

78 :
>>77
うーむ
実際はstopDragも書いてるのだが…
hoge_1〜10にドラッグアンドドロップのアクションをまとめて付けたいだけなのです

79 :
>>78
マウスオーバーしたやつにStartDragつければ、
全部書く必要なくない

80 :
これでいけるよたぶん
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,function(event:MouseEvent){
event.target.startDrag();
});
}

81 :
>>79
>>80
ありがとうござます!
やってみます!

82 :
こうやわ
for (var i=1; i<=10; i++) {
this["hoge_" + i].addEventListener(MouseEvent.MOUSE_DOWN,xMouseDown);
}
function xMouseDown(event:MouseEvent):void{
event.target.startDrag();
}

83 :
>>21
レス遅くなりすみません。原因が分かりました。
「特定の文字列に差し掛かったときスクロールが無効になり」と書きましたが、
文字列の中身には関係無く、その位置が代入先のテキストフィールド(tF1)の文字
インデックス0のときに生じるトラブルでした。
これは、各行頭に意図的に半角スペースを入れて誤魔化すことで回避出来ました。
※抽出アルゴリズム上で細工しても解決しなかったので。
つまり
abc012// エラー
efg345// エラー
つまり
 abc012// OK
 efg345// OK
となりました。

84 :
AS3,Player10.0,CS4です。
テキストフィールド(txt)は tf:TextFormat = new TextFormat(); としたとき
tf.url と tf.target と txt.setTextFormat(tf, 始点, 終点) で文字列内の指定部分に
ハイパーリンクを設定出来て、指定部分ではマウスカーソルが自動的に指マーク
になりますが、マウスカーソルの変化を感知するにはどうすれば良いでしょうか?
例えばテキストフィールド(txt)に
 東京電力[福島第一]原子力発電所の調査委員会 
を仮定し、[福島第一]にリンクが設定してあった時にマウスカーソルが縦棒線(I ビーム
カーソル)→指マークになったことを感知したいです。
マウスの位置で文字列位置をgetCharIndexAtPoint()で把握し、そこから[福島第一]が
含まれるかどうかという方法を考えましたが個々の文字毎にEvent.ENTER_FRAME処理
をしないといけないので処理が重くなりそうなので別案を探しています。

85 :
AS3 CS3です
1フレーム目にはstop();と記述してあり、MCが一つ配置されている
このMCを最後のフレームまで再生し終わった後、メインタイムラインの2フレーム目に移動するにはMCの最後のフレームに何と書けばいいんでしょうか?
parentを頭につけるだけでは駄目でした
超初歩の質問ですみません

86 :
MCの最終フレームにparent.gotoAndPlay(2)は?

87 :
>>86
こんな時間にスレタイ通りに早い回答ありがとうございます!
しかしparentでは1061のエラーが出て駄目でした…

88 :
>>87
parentが、DispalyObjectContainerになってるとか言われてるんでしょ?
その場合は、MovieClipにしてやればOK
MovieClip(parent).gotoAndStop(2)

89 :
>>87-88
キャストってやつね

90 :
AS3でCS5を使用しています
シンボルにマウスオーバーすると音が流れ、マウスアウトすると音が消えるようにするにはどうしたらいいのでしょうか?
最初はボタンでやろうかと思ったのですが
音が流れたままになってしまったのでアクションスクリプトにすることにしたのですが、よく分からず…教えてください

91 :
>>90
addEventListener マウスイベント MouseEvent
でググる。
シンボルが子を持つ場合には、MOUSE_OVERとROLL_OVERの違いに注意。

92 :
(自己レス)
マウスカーソル変化の感知自体は出来なかったのですが、txt.getTextFormat(A, B)
でTextFormat設定の有無を感知して処理することが出来ました。
またEvent.ENTER_FRAMEでなく、MouseEvent.MOUSE_MOVEを使えば軽くなりそうです。

93 :
>>91
有り難うございます。
マウスオーバーして音がでるようにはなったのですがアウトした時に停止できません
var sound_obj : Sound = new soundmusic( );
btn1.addEventListener(MouseEvent.MOUSE_OVER, onOver);
btn1.addEventListener(MouseEvent.MOUSE_OVER, onOut);
function onOver (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic( );
sound_obj.play();
}
function onOut (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic();
var channel : SoundChannel = sound_obj.play();
channel.stop();
}
となっているのですがどこを直したらできるでしょうか?

94 :
SoundChannelをメンバ変数にしないとだめかも んでSoundChannelで再生、停止をする
// サウンドを再生
var channel : SoundChannel = sound_obj.play(0,3);
// サウンドを停止
channel.stop();
詳しくはハクヒンさんとこ見るんだ

95 :
ていうかどっちの関数もMOUSE_OVERにaddしてるっていう

96 :
>>94
ハクヒンさんと言っても初心者は知らないのでは?
ということでURL ttp://hakuhin.jp/as3.html

97 :
>>94-96
ありがとうございます。
何度も何度もすみません、有り難うございます。
ハクヒンさんの見ても同じ文になってしまい…メンバ変数というのは
var sound_obj : Sound = new soundmusic();
var channel : SoundChannel = sound_obj.play();
channel.stop();
ではできていないのでしょうか?
sound_obj.play()の中に入る0,3は開始時間と繰り返す回数ですよね。
あとMOUSE_OVERが二つあるのは直しました。

98 :
>>97
var channel : SoundChannel
関数の中で変数を宣言してるのでchannel変数はローカル変数になり
スコープ{}の外からアクセスできない
onOverで再生してonOutで停止しようと思ったら
どちらからでもアクセス可能な場所にchannel変数を用意する必要がある
addEventListener(MouseEvent.MOUSE_OVER, onOver);
addEventListener(MouseEvent.MOUSE_OUT, onOut);
var channel : SoundChannel = null;
function onOver (e:MouseEvent):void {
var sound_obj : Sound = new soundmusic( );
channel = sound_obj.play();
}
function onOut (e:MouseEvent):void {
if(channel){
channel.stop();
channel = null;
}
}

99 :
>>98
ありがとうございました!できました
前の書き方だとOnOutしかアクセスできなくて駄目だった…ということでしょうか?
アクションスクリプト勉強します
本当に有り難うございました

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
12: 【者】イーホームズ藤田社長【耐震偽造】 (396)
13: あなたの見たいFLASH探します 20 (405)
14: Lenore(レノーア) (707)
15: 【なつみ】 こしあん堂ファンスレ 【23STEP!】 (918)