2011年10月1期FLASHActionScript 誰かが物凄い勢いで解答するスレ30 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
【者】イーホームズ藤田社長【耐震偽造】
すごい動画や画像を張って自慢するスレ(*゚□゚) オ!!
Adobe AIR 総合
IDに「swf」「flash」が出るまでage続けるスレ 90


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


1 :11/12/25 〜 最終レス :12/01/01
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 :12/01/01
>>18
文字入力毎に発生するイベントを調べて見たら良いかもしれません。
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
【者】イーホームズ藤田社長【耐震偽造】
すごい動画や画像を張って自慢するスレ(*゚□゚) オ!!
Adobe AIR 総合
IDに「swf」「flash」が出るまでage続けるスレ 90