ActionScript 誰かが物凄い勢いで解答するスレ 24
2 :
Now_loading...774KB :2009/08/05(水) 04:36:05 ID:vDKH2A31
CS3(AS3.0)のWinXP-Proで、複数(連番)のCSVファイル読み込みで困っています。 Data1.csv〜Data3.csvと、3つのCSVがあり、これをfor文の内部で下記のようにしました。 csvNum=id0+1;// 1〜3(for文でid0は0〜2) var loader:URLLoader = new URLLoader(); loader.addEventListener (Event.COMPLETE, load_complete, false, 0, true); loader.load (new URLRequest("Data"+csvNum+".csv")); // function load_complete (loadEvt:Event):void { trace ("id0= "+id0);// 番号の確認 dataStr0=loadEvt.target.data;// String型のdataStr0に格納 } ところが、番号確認の trace ("id0= "+id0) は本来、 id0= 1 id0= 2 id0= 3 と表示して欲しいのですが id0= 3 id0= 3 id0= 3 となります(3で固定されている)。 原因は何でしょうか?(CSVの読み込みは自体は問題ありません)
3 :
2 :2009/08/05(水) 04:48:50 ID:vDKH2A31
すいません。訂正です。 trace ("id0= "+id0) は正しくは id0= 0 id0= 1 id0= 2 となって欲しいです。
原因は何って言われてもfor文内でid0とやらが2になってりゃ読み込み完了する時には全部2で当たり前なんじゃねーの?
5 :
2 :2009/08/05(水) 11:06:45 ID:qrwcrsLy
>>5 loader関連の定義はforの外でやって、読み込みだけfor内でやるとどうなの?
>>5 for の中にある function が参照している id0 はそのループが来た時の値のコピーじゃなくて、
その function が id0 を参照したときだよ。
function 内で for の値使いたいなら function に引数で値渡せばよくない?
たぶんこんな感じの事やりたいんだろうけど、id0の値が2固定の理由はみんなが指摘してる通り for(var i:int=0;i<3;i++){ var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE,createFunc(i)); loader.load(new URLRequest("ファイル名" +i+".csv")); } function createFunc(i:int):Function{ return function(event:Event){trace(event.target,i);}; }
10 :
2 :2009/08/05(水) 22:18:06 ID:bfi7CxSU
>>6-9 有難うございます。
6さんと8さんの方法は不可でしたが、9さんの方法でOKでした。
しかしながら、9さんの createFunc(i) の仕組みが分かりません。
ヒントとなるようなサイトはありますか?
for の中身を (function ():void { ... })(); で包んで i をその中の変数にいれるのでもいける private function init():void { var f:String = "Data"; for (var i:int = 0;i < 3;i++) { (function ():void { var fname:String = f + i + ".csv"; var n:int = i; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, function (e:Event):void { trace([e.target, n, fname]); } ); try { loader.load(new URLRequest(fname)); } catch (e:Error) { trace(e.message); } })(); }
12 :
2 :2009/08/05(水) 23:26:58 ID:bfi7CxSU
13 :
Now_loading...774KB :2009/08/06(木) 00:53:36 ID:jBrVJLRj
外部のasファイルで、 下記のように記載しています。 package test { import flash.display.*; public dynamic class 1 extends flash.display.MovieClip { public function 1() { super(); addFrameScript(0, frame1, 1, frame2); return; } internal function frame1():* { stop(); return; } internal function frame2():* { stop(); return; } } }
14 :
Now_loading...774KB :2009/08/06(木) 00:55:14 ID:jBrVJLRj
そうすると、 以下のようなエラーが多発しています。 なにが原因なのでしょうか? 初歩的な質問かと思いますが よろしくおねがいします。 5行目 1084: シンタックスエラー : identifier が 1 の前に必要です。 8行目 1084: シンタックスエラー : leftparen が leftbrace の前に必要です。
数字だけのclass名を使わない
>>10 createFunc()の
function(event:Event){trace(event.target,i);};
は「createFunc(i)が呼ばれた時の状態を保持した関数」だから
詳しくは「クロージャ」でググれ
17 :
Now_loading...774KB :2009/08/06(木) 17:08:43 ID:p8U56k8+
XMLをASで読み込んでいるんですが、
下記のようなエラーがブラウザででてしまいます。
TypeError: Error #1010: 条件は未定義であり、プロパティがありません。
at aaa::Main/onXmlCompleteData()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
そこで、
http://d.hatena.ne.jp/ku-KiKi/20090524/p1 を参考に、以下のように直したんですが、一向にエラーがなくなりません。
手ほどきしていただけないでしょうか。
private var ns:String;
private var ns2:String;
private function onXmlCompleteData(arg1:flash.events.Event):void
{
var loc2:*;
var loc3:*;
ns = loc2.namespaceDeclarations().toString();
default xml namespace = new Namespace(ns);
ns2 = loc3.namespaceDeclarations().toString();
default xml namespace = new Namespace(ns2);
}
18 :
Now_loading...774KB :2009/08/06(木) 22:13:30 ID:NRn45DrG
環境:WinXP-Pro(CS3, AS3.0)です。
StageのMCをクリックして、ステージに配置された他のオブジェクト(インスタンス名:onStage)の
複製を試みていますがうまくいきません。MouseEvent.CLICKで
var tmpMC:MovieClip=MovieClip(root).getChildByName("onStage");
tmpMC.x=tmpMC.y=300;
MovieClip(root).addChild (tmpMC);
としてプレビューすると下記のエラーが出ます。
1118: 静的型 flash.display:DisplayObject の値が、関連しない可能性が高い型 flash.display:MovieClip
に暗黙で型変換されています。
そこで上の1行目を下のように(onStageをMC化)すると
var tmpMC:MovieClip=MovieClip(root).MovieClip(getChildByName("onStage"));
今度はプレビューでエラーにならない代わりにクリック動作で下記のようになります。
TypeError: Error #1006: MovieClip は関数ではありません。
どうしたら良いでしょうか? 目標はAS2.0のduplicateMovieClip()動作です。
ググりましたが、
ttp://level0.kayac.com/2009/02/as3duplicatemovieclip.php の方法では
constructorが未定義プロパティ扱いになります。
19 :
Now_loading...774KB :2009/08/07(金) 00:42:30 ID:TuE/za94
最初のエラーは MovieClip(MovieClip(root).getChildByName("onStage") だろう これを直せば tmpMC.constructor もいける
>>20 さんくす。
MovieClip(MovieClip(root).getChildByName("onStage")) だけだと複製でなく
平行移動になってしまいますが、tmpMC.constructor を続けて使うとOKでした。
ただし、CS3の自動フォーマットではエラーになりますw
22 :
Now_loading...774KB :2009/08/07(金) 10:24:09 ID:VgPFQsPM
クラスメソッドとインスタンスメソッドの挙動の違いについて質問したいのですが オーサリングツール(Flash CS3)で予めダイナミックテキストのフィールド(_txt)を配置して それをドキュメントクラス(Main.as)でコントロールしたいのですが private function test() だと問題無く動くのですが private static function test() だとエラーになってしまいます。 1120: 未定義のプロパティ _txt へのアクセスです。 これはどういう挙動の違いでしょうか? オーサリングツールで配置したものはムービークリップでも同様の結果になるのですが。
クラスメソッド内で任意のインスタンス上の_txtにはアクセスできないよ もしやりたいなら、「どのインスタンスの_txtを参照したいのか」を指定しなくちゃいけない private static fnction hoge(mc){ trace(mc._txt.text } みたいにね。クラスメソッドってのは基本的にインスタンスが何も存在しなくても動作する処理だから、任意の一インスタンスの値に依存するような用途は元々考えられてない
ちょい補足 どっからでもアクセスできるようにしたい、とかだったら、ドキュメントクラスのコンストラクタの中で、staticなプロパティにインスタンスへの参照突っ込んでおけばいいんじゃないかな? ドキュメントクラスが「MainClass」で、オーサリングツール上でテキストフィールド「textField」を配置してる場合はこんな感じ public class MainClass extends Sprite { public static var main:MainClass; public static function hoge() { return main.textField.text; } public var textField:TextField; public function MainClass():void { MainClass.main=this;//これ以降はMainClass.mainでアクセスできる trace(,MainClass.hoge()); } }
25 :
22 :2009/08/08(土) 00:51:39 ID:+XlFsG2U
>>23-24 回答ありがとうございます
お礼が遅れてすいません
なるほど、そういう使い方は想定されてないのですね
動かしたかったら参照を渡してあげないといけないと
AS2.0で文字列を簡単に暗号化させるようなことはできますか? 環境、変数をいくつか文字列に保存→暗号化 それをユーザーがローカルに保存 ユーザーが入力→複合化→環境、変数を取り出す→反映 ということをしたいのですが
27 :
Now_loading...774KB :2009/08/09(日) 00:29:05 ID:VHnq37kK
FlashDevelopを使ってActionScriptを勉強しています。 2つのASファイルを使っていて、実行をすると 「未定義である可能性が高いメソッド addChild の呼び出しです。」 というエラーが出ます。 ■Main.as package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { var myRandomNum:RandomNum = new RandomNum(5); } } }
28 :
Now_loading...774KB :2009/08/09(日) 00:31:05 ID:VHnq37kK
■RandomNum.as package { import flash.text.TextField; import flash.text.TextFormat; public class RandomNum { public function RandomNum(num:Number) { trace(num); } private var myTextField:TextField; private var myTextFormat:TextFormat; private function displayText():void { myTextField.text = "あああああ"; myTextFormat.size = 36; myTextFormat.color = "0xFF0000"; myTextField.defaultTextFormat = myTextFormat; addChild(myTextField); //ここが問題らしい。 } } } どのようにしたら良いのでしょうか?
>>28 rot13あたりでググれ
>>27 そのコードのどこにaddChildがかいてあるのだ?
情報を小出しにするな
>>28 インスタンスを生成してない。
var myTextField:TextField = new TextField()
29 名前:Now_loading...774KB :2009/08/09(日) 00:36:35 ID:YOa3qRmx
×
>>28 ->
>>26 だったスマゾ
rot13あたりでググれ
32 :
Now_loading...774KB :2009/08/09(日) 01:04:40 ID:VHnq37kK
>>29 見にくくてすみません、
>>28 のRandomNum.asの下の方です。
>>30 ああ、そうか!
と思ってやってみたのですが、
エラーはそのままでした……。
間違いがたくさんありそう……
public class randomnum extends Sprite
34 :
26 :2009/08/09(日) 01:45:26 ID:YdDZ0Oj6
>>29 >>31 ありがとうございます。
セキュリティを求めてるわけでもないので簡単そうでよいのですが、
alphabet:144:4:52:716@363:4.5:5:5.5:6:6.5:7:7.5:8:8.5:9:9.5:10:10.5:
11:11.5:12:12.5:13:13.5:14:14.5:15:15.5:16:16.5:17:17.5:18:18.5:
19:19.5:20:20.5:21:21.5:22:22.5:23:23.5:24:24.5:25:25.5:26:26.5:
27:27.5:28:28.5:29:29.5:30:30.5:31:31.5:32:32.5:33:33.5:34:34.5:
35:35.5:36.5:37:37.5:38:38.5:39:39.5:40:40.5:41:41.5:42:42.5:43:
43.5:44:44.5:45:45.5:46:46.5:47:47.5:48:48.5:49:49.5:50:50.5:51:
51.5:52:52.5:53:53.5:54:54.5:55:55.5:56:56.5:57:57.5:58:58.5:59:
...略
このように99%が数字と区切りの:の4kbほどのデータなのでrot47のほうがいいのかな。
それとも数字の部分をうまくまとめてアルファベットにしたりして軽量化できないものか…
質問す。 環境: AS3.0、winXP SP3 home edition、 Adobe flash CS3 Listコンポーネントに追加したアイテムのテキストのフォントサイズを変えたいんですが うまくいきません、どう書けば動くのか知ってる方がいましたらお答えを下さいませ。m(_ _)m うまく動かなかったコード1 -------------------------- list1.rowHeight = 60; // アイテムの高さ。 これは反映されました。 list1.setStyle("fontSize", 30); // フォントサイズ。 うまくいきませんでした。 -------------------------- うまく動かなかったコード2 -------------------------- // textFieldクラスのようにTextFormatクラスを使わないといけないのかもと思い、試してみたコードです。 // これでもアイテムのフォントサイズは変わりませんでした。 var tf:TextFormat = new TextFormat(); tf.size = 40; list1.setStyle("textFormat", tf); --------------------------
補足です。 リストに追加された個々のアイテムごとにフォントサイズを変えたいのではなく、 Listコンポーネントに追加されるアイテムの既定のフォントサイズ (デフォルトでは10) を変更したいです。
37 :
35 :2009/08/09(日) 06:22:45 ID:I+sLzBME
38 :
27と28 :2009/08/09(日) 08:32:43 ID:VHnq37kK
>>33 どうも!
Spriteを継承したらエラーができました
しかし、実行結果は真っ白なまま……
うまくオブジェクトを生成できていないか、表示できていないようです
何ででしょうか?
39 :
Now_loading...774KB :2009/08/09(日) 14:40:28 ID:YLcnbrue
>>38 displayText()どっこで呼び出してるの?
図書館で「詳説 ActionScript3.0」という電話帳みたいな本を借りてきた。 昨日、今日で28ページまで確実に学んだつもりだが、方法論としてこれで良いのか? と思っている。
Flashでソケットを使って通信しようとしたら、 ごく稀に4242バイトで区切られて送られてくるデータがありました。 [サーバー] → [ネット] → [クライアント]だけで30%前後の確率で起きます。 [サーバー] → [クライアント]では、仕様どおり10KBまでめいいっぱい送れます。 これって、ネット回線上のパケットの遅延でこうなっているのでしょうか? もしそうなら、回避方法はありますでしょうか?どうか、教えてください。
たぶん順番待ちがいるから 早く読んであげなーよ。 で絶対内容忘れるから メモしておきなーよ。
>>42 でも、こういうのメモも取らずに1回読んだだけで覚えちゃう人がいるんだよねw
おれは数ヶ月経つと、メモを取ったこと自体、おぼろげになっちゃうけど。。
基本的に図書館で借りる技術書の類は 購入する価値があるか否かをゆっくり見極めるためにあると個人的には思ってる。 読んで実際に確かめて、読んで実際に確かめて、となると どうしても買わないといけなくなる。
45 :
Now_loading...774KB :2009/08/10(月) 01:25:43 ID:hvVBZ35+
WinXPでCS3(AS3.0)を使っていますが、Flashのステージ上にある複数の MCをWindowsやMacの通常のマウス操作のように囲んで選択することは できますか? 代案としてShiftキーを押しながらクリックで選択することも考えていますが、 できればマウス操作だけで済ませたいです。
>>45 3.0知らないけどクリックを押した点と離した点で矩形が描けるから
その矩形とのあたり判定でなんとかできるんじゃないかな
AS3で20MBくらいのバイナリデータのMD5を作成してるんですが、 すごく処理が重くてPlayer自体がフリーズしてしまいます。 擬似Thread立てても無理ぽで、なんとか軽くor早くすることって可能なのでしょうか?
48 :
Now_loading...774KB :2009/08/10(月) 11:12:22 ID:pfDztTQZ
AS3.0です 背景が見える透明状のBitmap上に、fillRect等で任意の位置・大きさ・色の矩形を描画するというのは可能なのでしょうか? 1.var bitmapData:BitmapData = new BitmapData( 800, 400, false, 0xFF000000 ); 2.var bitmapData:BitmapData = new BitmapData( 800, 400, true, 0xFF000000 ); bitmapData.fillRect( new Rectangle( 20, 20, 50, 100 ), 0xFF0000 ); BitmapDataを弄ってみましたが 1.で背景色が付いた状態で描画されたり 2.で最初背景色が付いているのを、描画した矩形で色抜きされて透明になる様な事はできたのですが
49 :
41 :2009/08/10(月) 11:39:02 ID:lC5ICaTz
自己解決しました。 TCPの仕様で、メッセージ境界は保障されないってのがありました。 バイトストリーム使ってバッファを取るしかないようですね。 ここは書き込むと、なぜか自己解決できるスレなんでしょうかねw。
>>47 そもそもVBあたりで作るものでしょ?
もしくはサーバーに任せるとかさ。
なんで、そんな重い処理をFLASHでさせるのか疑問?
>>50 47です。
もっともな意見だと思います。
いまAIRでファイルアップロードを作ろうと思いまして、
アップロードがきちんと行われているかハッシュを用いようと思ったのです。
手元にあるファイルとアップしたファイルでハッシュ値が違えば、
正しくアップロードされていないということなので。
MD5に変わるファイルの欠損を確かめる方法って何かありますか?
>>51 Formのアップロードと同じ感覚でいいんじゃないの?
ファイル容量が一致してればMD5とか不要では?
airで動的にファイル作ってるなら確認したい気持ちもわからんでもないが。
本来MD5でファイル確認するのは改変防止でしょ?
cs3のas3で ・ボタンMCをつくりマウスイベントをつけ ・マウスクリックイベントハンドラ内で ・入れ子のMCをNewしてstageにaddChild したときに、子MCの1フレーム目がスキップされて2フレーム目から再生されてしまう現象が発生してしまうんですが、これはバグなんですか?
>>53 ちょっと想起しにくいので、ASの部分を詳しく。
AS3.0のlistコンポーネントって、「↓」キーでアイテムの一番下まで移動した後に「↓」キーを押しても 一番上のアイテムに選択が移動してくれないんですが、ASでなんとかなるんでしょうか? list.selectedIndex を使えばいけるかと思ったけどこれを使った後の挙動がおかしい (↑↓キーを押しても反応しなかったりする) ので困ってます。 標準のコンポーネントって微妙ですね。
どうやら list.selectedItem にアイテムを代入して設定するということが出来ない(反映されない)ようだ。 代入に失敗しているのか、それとも別の内部的なプロパティの値が優先されて使われてるのか。。。
57 :
53 :2009/08/11(火) 04:25:28 ID:HvJiy8OC
mc構成は ・mc1(mc2を子に持つムービークリップ) mc2(子mc 全30フレーム 1フレーム目にストップをかけてあります) mc1は「ActionScriptに書き出し」「最初のフレームに書き出し」にしてあります ・button(ボタン) ボタンはあらかじめステージに出してあります 以下、AS部分(1フレーム目に記述)です button.addEventListener(MouseEvent.MOUSE_DOWN,mousedown); function mousedown(e:MouseEvent):void { var mc=new mc1(); stage.addChild(mc); }
>>53 このスクリプトで試すとちゃんとmc2は1フレーム目で止まってるけどなぁ
stage.addChild(mc); した瞬間にmc2の再生が始まるって事?
>>56 ListコンポーネントのselectedItemは読み取り専用プロパティじゃね?
60 :
53 :2009/08/11(火) 13:20:36 ID:NTbLy0nD
>>53 あー cs3だから player9書き出しか。
player10書き出しならちゃんと止まってるけど 9だとなぜか1フレーム目が無視されて2フレームから始まっちゃうね。
根本的な解決になってないけど、 mc2のコンストラクタでstop(); するか
mc2をmc1に直置きしないで mc2も var mc_2:MovieClip = new mc2(); addChild(mc_2); すれば1フレーム目のスクリプトも効いたよ。
62 :
53 :2009/08/11(火) 14:30:29 ID:NTbLy0nD
player10書き出しってことはCS4かぁ。。出費がorz とりあえず改善案2でやったらストップしてよさげなので、そちらの案を使わせていただきます。 ありがとうございましたm(__)m
なんで1フレーム目のスクリプトが効かないんだろう・・・俺も知りたい もっと簡単にするなら これでも動くみたい function mousedown(e:MouseEvent):void { var mc=new mc1(); mc.mc2.stop(); ←これ追加 stage.addChild(mc); }
64 :
54 :2009/08/11(火) 16:08:22 ID:FWv292dF
>>53 作った直後だとどこにあろうが(MCのなかに作っても)、
作ったMCの子MC以下のムービークリップが2フレーム目から再生されるね。
ただ、次のように書くと全て1フレーム目から始まるようです。
function mousedown(e:MouseEvent):void
{
var mc=new mc1();
stage.addChild(mc);
mc.gotoAndPlay(1);←これを追加(gotoAndStopでもOK)
}
多分、張った時点で子MC以下が1フレーム終わったとみなされてしまうプレイヤーのバグのようです。
ただ、バグで無いなら、位置だけでなくフレームも指定しろってことなんでしょうね。
65 :
55 :2009/08/11(火) 18:41:56 ID:Pz8np0Tr
多くの企業がトップページなどにflashを置いていますが、それについて質問です ワンポイント(900*300など)のflashを制作するときは、ASオンリーなのかタイムラインも使うものなのか フルflashサイトはASオンリーなのかタイムラインも使うものなのか ケースバイケースだとは思いますが一般的にどうなのか教えていただきたいです、若干スレ違いでもうしわけありません
>>66 内容と制作者の好み次第
つーか、制作経験があればこんな質問出てこない
考えるより先に、沢山作品を作れとしか言えない
68 :
Now_loading...774KB :2009/08/12(水) 19:12:34 ID:K051BZkF
WinXP,CS3(AS3.0)です。 ステージ上に出現させたMC(インスタンス)をダブルクリックして反応させたく思っていますが、 何も反応しません。下はtraceで試したものです。 (MC内のフレームアクションとして書いています) doubleClickEnabled=true; addEventListener (MouseEvent.DOUBLE_CLICK, this_doubleClick, false, 0, true); function this_doubleClick (mouseEvt:MouseEvent) { trace("this_doubleClick"); } 本来ならダブルクリックでthis_doubleClickと出るはずなのですが・・・ 原因は何でしょうか?
>>68 mouseEnabledもTrueにしなきゃダメみたいだな
70 :
68 :2009/08/12(水) 20:41:11 ID:K051BZkF
>>69 有難うございます。でも駄目です。
addEventListenerの前で、doubleClickEnabled=true; mouseEnabled=true;
として、trace ("this_doubleClick "+mouseEvt.type);
としましたが何も出ません。
さらにアドバイス願います。
>>70 addEventListenerの引数のthis_〜をthis.this_〜に変えてみる、とか
72 :
68 :2009/08/12(水) 22:08:20 ID:K051BZkF
>>71 原因が分かりました。
このMCインスタンスは子を持っているので、mouseChildren = false;
にしないとダブルクリックが有効になりませんでした。
AS2.0です public attachMovie(id: String , name: String , depth: Number , [initObject: Object ]) : MovieClip MovieClip.attachMovieメソッドは第四引数initObjectが省略可能ですよね。 このように省略可能な引数がある自作関数は作ることが可能ですか? 可能ならどのように記述するのでしょうか function hoge(a:Number, b:String, [c:String]):Void { } のように書くとパブリッシュ段階でエラーになりました
Flex Builder 3 のAS3です。 flash.media.Soundをextendsした自作サブクラス(OreSound)で埋め込みMP3を読み込みたいのですがうまくいきません。 だれかやりかたおしえてくださいませ。 Soundで埋め込みMP3を読み込む場合は次のようにすればうまくいきます。 [Embed(source="suneo.mp3")] public var suneoMp3:Class; var suneoSound:Sound = new suneoMp3() as Sound; smallSound.play(); 同じように自作したOreSoundで次のようにやると、suneoSoundがnullになってしまいます。 [Embed(source="suneo.mp3")] public var suneoMp3:Class; var suneoSound:OreSound = new suneoMp3() as OreSound; smallSound.play(); ちなみに外部MP3の場合はOreSoundで読み込み、再生することができてます。
>>73 2.0なら、argumentsを使ってlengthやら種類を見て判断する方法かなぁ
これだと、省略できる引数は最後尾から並べなきゃならないけど
>>73 末尾のcだけが省略対象なら、普通にc:Stringって書いておけば省略は可能だと思うけど
そうでないなら、
>>75 のいう方法かなあ。
77 :
Now_loading...774KB :2009/08/13(木) 22:01:01 ID:UMXrW/PF
CS3(AIR1.0, AS3.0),XP-Pro AIRでコンテキストメニューが現れず困っています。CS3のプレビューやスタンドアローン SWFでは問題なく表示されますが、AIRにすると出ません。 これはAIRのバージョンに起因するかと思い、30日お試しのCS4(AIR1.1)でパブリッシュ しましたがこれも駄目です。 メニュー自体はステージに配置したMCにaddChildしたMC(半透明:alpha=0.5)に設定し、 記述を下記のようにしています。 var menu:ContextMenu = new ContextMenu(); var item1:ContextMenuItem = new ContextMenuItem("非透明", false);//非透明化する選択肢 item1.addEventListener (ContextMenuEvent.MENU_ITEM_SELECT, item1_select); function item1_select (event_ContextMenu:ContextMenuEvent):void { alpha=1.0; item1.enabled=false; } menu.customItems.push (item1); menu.hideBuiltInItems ();//AIRではビルトインアイテムは無いが一応付けた(これを無効にしても同じ結果) contextMenu = menu; 本質問とは直接関係はありませんが、AIRって結構癖がありますね。 (SWFで出来たものが出来なかったり)
78 :
77 :2009/08/13(木) 22:02:15 ID:UMXrW/PF
(追記)ASはMCのフレームアクションとして書いています。
79 :
73 :2009/08/13(木) 22:29:28 ID:+H9PBID0
>>75 >>76 なるほど! arguments初めて知りました
ありがとうございます
たとえば第三引数を省略した場合にデフォルト値を与える場合
function hoge(a:TextField, b:String, c:String):Void {
if (arguments.length == 2) {
c = "hage";
}
trace([a, b, c]);
}
のようにすればいいんですね
>>76 cだけです。それでも動いたんですが、それは偶然で
勝手に省略しちゃだめだろうなと思ってしまって
ですが
>>ActionScriptでは、関数に定義された引数の個数にかかわらず、任意の数の引数を渡すことができます。
と非公式テクニカルノートのargumentsの項にありました。柔軟…
80 :
Now_loading...774KB :2009/08/14(金) 09:27:42 ID:Glwdf7hp
写真サイトを作ってます。 写真に重なるように透明化されたボタンを配置しています。 そのボタンにロールオーバーすると「次の写真へ」と書いてあるMCが表示され クリックすると次の写真がロードされ、「次の写真へ」のMCがアルファ0になり、 透明ボタンのenabledをfalseにするようにしています。 それで写真のロードが完了すると 透明ボタンのenabledをtrueにしてます。 しかしマウスがロールオーバーされたままだと「次の写真へ」が表示されず、 一度ロールアウトしてからロールオーバーするときちんと表示されます。 そこで写真ロード完了後に 透明ボタン.hitTest(_xmouse,_ymouse) でtrueが返ってきたら 「次の写真へ」を表示させようと思ったのですがなぜかundefinedが返ってくるんですが どこに問題があるんでしょうか? 透明ボタン._yなどはきちんと返ってくるので、強引にhit判定できるのですが なぜhitTest()がundefinedなのかわかりませんお願いします。
>>80 2.0?
ボタンにhittestってできたっけ
>しかしマウスがロールオーバーされたままだと「次の写真へ」が表示されず、
一度ロールアウトしてからロールオーバーするときちんと表示されます。
こっちを解決するのでいいんなら
とりあえずボタンになんて書いたのか貼ってみてよ
82 :
Now_loading...774KB :2009/08/14(金) 11:05:45 ID:Glwdf7hp
>>81 ありがとうございます。本当助かりました。
ボタンをMCに変えたら解決しました。
alpha_btnって言うボタンを作ってalpha_btn_mcって名前でattachMovie()していたから
MCのつもりになってました。
>しかしマウスがロールオーバーされたままだと「次の写真へ」が表示されず、
一度ロールアウトしてからロールオーバーするときちんと表示されます。
こっちに関しても気になるので張って見ますので、お願いします。
next_btn_mc.onRelease=function(){
_parent.change_next();//次の写真のロードを開始します。
}
next_btn_mc.onRollOver=function(){
navi_next_on();//「次の写真へ」と書いてあるMCを表示させます。
}
next_btn_mc.onRollOut=function(){
navi_next_off();//「次の写真へ」と書いてあるMCを非表示にします。
}
next_btn_mc.onReleaseOutside=function(){
navi_next_off();//「次の写真へ」と書いてあるMCを非表示にします。
}
写真のロードを開始
↓
next_btn_mc.enabled=false;
↓
ロード完了
↓
next_btn_mc.enabled=true;
としてます
ボタンもattachMovieできたのか
ttp://okwave.jp/qa4673272.html このひとの回答にバグ臭いって書いてあるね
>next_btn_mc.onRollOver=function(){
>navi_next_on();//「次の写真へ」と書いてあるMCを表示させます。
>}
で表示されると思うんだけどな
一回ボタンを押したあとがうまくいかない、
ロールオーバー(MC表示される)→押す(MC消える、ロード開始)
→そのままロールオーバー(ロード完了したのにMCでてこない)
ってこと?
>>82 よくわかってないかもしれんが、next_btn_mc.onReleaseの段階でも、
navi_next_off()する必要があるんじゃないの?
85 :
Now_loading...774KB :2009/08/14(金) 12:53:40 ID:Glwdf7hp
>>83 バグだったんですね
とりあえずボタンはMCに変えました。
一回ボタンを押したあとがうまくいかない、
ロールオーバー(MC表示される)→押す(MC消える、ロード開始)
→そのままロールオーバー(ロード完了したのにMCでてこない)
ってこと?
↑そういうことです
>>84 navi_next_off()は写真のロードする関数に書いてあります
でもnext_btn_mc.onReleaseに書いたほうがスマートですね、
直します。
「onRollOver (Button.onRollOver ハンドラ) onRollOver = function() {} ポインタがボタン領域の上に移動すると、呼び出されます。このイベントハンドラが呼び出されたときに実行される関数を定義する必要があります。」 onRollOver はポインタがボタンに外れた状態から重なったとき、 onRollOut は重なった状態から外れたとき に一回呼び出されるイベントハンドラであって 今ボタンの上にいるかどうかを判断するものではないからじゃないかな ロールオーバー(onRollOver呼び出し、MC表示される)→押す(onPress呼び出し、MC消える、ロード開始) →そのままロールオーバー(ポインタは動いてないのでonRollOverは呼び出されない) なのでRollOver、RollOut時にflagを変えてload終了後にif(flag)で判断するか 今回やったようにMCにしてhittestするかかなぁ。
>>85 見当違いで申し訳ない。
バグというよりは仕様でしょうなあ。
ロールオーバー状態が維持されてるってことなので、Flashとしては
規定通りの動作なんだね。
88 :
Now_loading...774KB :2009/08/14(金) 14:38:44 ID:Glwdf7hp
>>86 ありがとうございました。
おかげできっちり理解できました。
>>87 ありがとうございました。
とんでもないです、
コードがスッキリしました。
89 :
Now_loading...774KB :2009/08/15(土) 03:51:36 ID:9J5vAFna
質問です。 キーボード入力なんですが、ActionScript3.0でKey.isDownがなくなってしまいましたが、 キーイベントを使わずにキーボードの入力状態を得る方法ってないでしょうか? キーイベントって取りこぼしというか、イベントがこなくてキーを離してるのに 押しっぱなし状態のままになってしまったりとかありますよね。 何か対策がわかる方教えてください。
>>89 Key.isDown() はセキュリティの理由で AS3.0 からは廃止されましたので、
基本的にはイベントでとるしかありません。
イベントが着たらその都度処理をさせることになります。
イベントハンドラでたくさんの処理を行うと、稀に取りこぼしてしまうことがまれにあります。
なので、キーが押されたことを受け取るイベントハンドラでは適当な変数を使ってフラグを立てるだけにし、
キーを話したことを受け取るイベントハンドラでフラグを潰すことでKey.isDown()と似た処理に出来ます。
そして、EnterFrame なりなんなりでその変数を判定するといいでしょう。
91 :
89 :2009/08/15(土) 13:25:12 ID:2nzjrOx3
>>90 ありがとうございます。
イベント使うしかないんですね。
cs3 as3 です。 flvplaybackコンポーネントのUIを改造して、カスタムのプレイヤーを 作ろうと思っています。 で、seekbar というのがあるのですが、この中にprogress という 横長のMCがあります。 これてっきり、今再生中の、経過をバーの色で表しているのかと思って いたのですが、もしかしてロードしたバッファの量を表しているのでしょうか?
as2で var this["a"+b]:Number = 1; とするとシンタックスエラーがでました 配列アクセスで変数名を動的に指定した変数を型指定したかったのですが、 ヘルプに『別のオブジェクトにスコープがまたがる変数をローカル変数で宣言することはできません。』 とあり、これに引っかかってるのだと思います。 変数名を動的にして(for文内などで)型指定する方法はありますか?
>>90 同じ内容で悩んでいるのですが、その方法でもキーupでフラグ潰した瞬間に
キー押しっぱなし不具合でまたフラグが立ってしまいます。
95 :
Now_loading...774KB :2009/08/16(日) 17:21:06 ID:d+Y9IrpA
ボタンのon(release)を外部(例えば他のMCやフレーム)から意図的に実行する事って可能ですか? 要するにボタンのreleaseイベントを、ユーザのボタンクリックではなくスクリプトから発行したいのですが・・・ 可能ならばどのような方法でやるのか教えていただけると幸いです。
>>95 on(release)っていうから、AS1.0か2.0だと思うが、可能。
実行する内容の関数を、フレームなり、MCなりにわりあてればいい。
たとえば、ボタンアクションが以下のようになってるなら
on(release){
myFunction()
}
あるフレームに、myFunction()と書けば、再生ヘッドがそのフレームを通過した時に、
その関数が実行される。
97 :
Now_loading...774KB :2009/08/16(日) 17:38:50 ID:d+Y9IrpA
>>96 あーなるほど・・・そういう手がありましたか。
ボタンが多くスクリプトも長いので、変更の作業がちょっと面倒ですがやってみます。
ありがとうございます
すみませーん。 ステージにオブジェクトがあるかどうかを 調べるのってどうすればよいのですか? やりたいのは ステージ上にSpriteオブジェクトがなければSpriteオブジェクトを作る ってだけなんですけど。わかりません。。2時間悩み中。。。 環境Win,AS3
>>98 3.0しらないけど
オブジェクトって名前つけるんじゃないの?
その名前にアクセスしたらあるかないかくらいわかるんじゃない?
見当違いならごめん
>>99 名前はちゃんと付けてる。
存在しないものを参照するようなもんで、やっぱ無理かなのかなー。。
イメージとしては↓こんなかんじ
var sp:Sprite = new Sprite();
if(sp == null) {
addChild(sp);
}
4時間悩み中。。。
ちなみにtry..catchでもダメだった。
>>100 こんな感じでどうだろ?
rootオブジェクトも引っかかるかもしれないけど
そこは適宜対応ということで
var sp:Sprite = new Sprite();
for(var i:int = 0; i < stage.numChildren; i++) {
if (stage.getChildAt(i) is Sprite) {
addChild(sp);
}
}
102 :
101 :2009/08/16(日) 22:54:09 ID:q+D29hXD
>>100 まちがえた。ごめん。
var hasNoSprite:Boolean = true;
for(var i:int = 0; i < stage.numChildren; i++) {
if (stage.getChildAt(i) is Sprite) {
hasNoSprite = false;
break;
}
}
if (hasNoSprite) {
var sp:Sprite = new Sprite();
addChild(sp);
}
>>102 神様仏様102様ー!
うまくいきましたよ!!
stageはObject(root)に変えました
いやー思いつきませんでした。あなた天才です。
ありがとうございます!
助かったー。これで寝れるー
環境はmac os10.5/cs3/AS2 です。 以前にシーンが8つくらいで構成された2分程度の流しっぱなしのflash動画を4本作成したのですが、それにyoutubeのような感じで、再生、停止、ドラッグ可能なタイムバーを付けてたいのです。 内容は図形なや文字ばかりなので、デスクトップで再生した動画をキャブチャすると、容量が大きくなりすぎてしまう上、ノイズ乗りまくりなので、この方法はダメでした。 かと言って、メインのタイムラインに全てのオブジェクトを配置し直すのは時間がかかり過ぎるので、これも避けたいです。 swfファイルをそのままの画質、容量でタイムバーなど制御ボタンなどをつける方法はありますでしょうか?よろしくおねがいします。
>>104 そのまま動画swfをloadMovieで読み込めばいいんじゃないの?
106 :
104 :2009/08/17(月) 13:33:27 ID:wRzL7420
>>105 ありがとうございます。
試しにやってみたのですが、
中のswfの全体の再生時間を取得して、タイムバーと再生位置を連動させるのは可能でしょうか?
タイムバーは読み込んだMovieの_totalframesと_curentframe使えばできる。 再生時間表示させたい場合はフレームレートで計算するのかな? アバウトな時間になるとおもうけど。
108 :
Now_loading...774KB :2009/08/17(月) 15:02:49 ID:8D5QCklf
ボタンを押した時のアクションで、FLASHを全てリセットして最初から再生する方法はありますでしょうか? ブラウザなどでいうF5ボタンを押した時のように、グローバル変数の値などは完全にリセットして 最初から再生したいと考えています。現在、シーンに分けて作成しており、シーン3のあるボタンを押すと シーン1の1フレーム目から完全リセット再生したいのですが、どのようにすればいいのでしょうか?
109 :
Now_loading...774KB :2009/08/17(月) 15:13:36 ID:vyHEvJA1
XAMPPでswfmillを動かせないかと文献を探していますがなかなか見つかりません。 ここで聞いても良いものなのかわからないので質問に適した場所があったら教えてください。 また、動かし方のわかる人がいましたら教えてくださいよろしくお願いします。
>>108 自分で作る。
ボタン押したら、変数を初期化して、MC.gotoAndPlay(1)するアクションを実行。
それからAS使うなら、シーンを使うのは避けるべし。
>>108 グローバル変数じゃなければ
loadMovie("自分のswfファイル名", _root);
で全リセットいけた気がする
112 :
Now_loading...774KB :2009/08/17(月) 17:53:23 ID:8D5QCklf
>>110 シーンを使ってるのでそれがなかなか出来ないんです・・・
シーンなんて不便なもの使うんじゃなかったと凄く後悔してるのですが、
もうこれだけ作ってしまった以上はどうにもできないですね・・・
>>111 おぉw ありがとうございます!
ファイル名を_urlで取得すればファイル名の変更にも柔軟に対応できそうですね。
ありがとうございます!!
113 :
109 :2009/08/17(月) 18:02:36 ID:vyHEvJA1
自己解決しました。 お邪魔いたしました。
教えてください!! AS3です。複数のTimerを並行して動かしたいのですが、 最初のTIMERのタイミングで一緒に全て動いてしまいます。 var t1 = new Timer(1000); //1秒に1回動かしたい t1.addEventListener(TimerEvent.TIMER, eTimer1); t1.start(); var t2 = new Timer(2000); //2秒に1回動かしたい t2.addEventListener(TimerEvent.TIMER, eTimer2); t2.start(); この様に記述しますと、1秒に1回、eTimer1とeTimer2が 動いてしまいます・・・・
115 :
114 :2009/08/17(月) 19:06:23 ID:soGClBv3
すいません解決しました! t1.addEventListener(TimerEvent.TIMER, eTimer2); と書いてました。 レス汚しすみませんでした・・・
116 :
Now_loading...774KB :2009/08/18(火) 00:41:29 ID:8lF7qsi3
swapDepthsを実行すると、レイヤー構造が崩れてしまうのが不便で仕方ないんですけど みなさんはどのように対処してるんですか? attachMovieClipなどの関数を使わざるを得ないものになると、必然的にレイヤーが崩れてしまうと思うのですが、 そのようなFLASHを作ってる人は、一つ一つのMCに対してonClipEvent(load)内でswapDepths(1);のように 深度を設定して、自分でレイヤー構造を管理してるのでしょうか? 小さい規模のFLASHならそれも可能でしょうが、少しでも規模が大きくなると、それも難しいように感じます。
117 :
Now_loading...774KB :2009/08/18(火) 01:11:44 ID:FXqxthmv
すいません、質問です。 flash developで自主プログラム開発中の者ですが、 mainにおいてあるローカル変数に、新しく作ったクラス内部の関数から アクセスしたい場合はどのようにすればよいのでしょうか? 新しく作った関数はコンテナオブジェクトではないので、親と子の関係が ありません。rootやparentは使えないのです。 すいません。ご教授お願いします。
>>117 そもそも、少しでも規模が大きくなるならonClipEvent()とかは、
使わないんではないかな。
MCにAS書くのは、小規模ならではの作り方だと思う。
で、swapされるようなものは「そもそも最初から配置しない」のがいいかも。
どうしてもオーサリング時に配置したいなら、もうそいつの深度はいじらない。
マイナス深度とプラス深度は交わらせない。
重なりを管理したいなら、attachMovie()してから配列に格納したりとか
いろいろあるだろうけど、なんにしてもAS2.0以降ならクラス使うだろうから、
いちいちMCに書き込んで〜なんて手間はないと思うよ。
レイヤーの崩れを気にするというより、重なりそのものをASで管理する方向に
いくんじゃないでしょうか。
120 :
Now_loading...774KB :2009/08/18(火) 03:24:40 ID:AZ9arQxK
CS3(AS3.0)のWinXP-Pro 画面内の動的に描かれた線内の領域を塗りつぶすにはどういった方法が ありますか? 例えば文字Dの線で囲まれた部分の場合、BitmapDataのfillRectは使えませんし、 floodFillでも形を指定する必要があります。 現在は、縦線を多数連ねて(|||| の感じで)擬似的に塗りつぶした状態にしていますが、 消費メモリーの増加が激しいので困ってます。 理想では、CSVから読み込んだ数値を元にグラフを描き、交差&囲まれた 領域を動的に塗りつぶしたいです。
121 :
Now_loading...774KB :2009/08/18(火) 03:49:50 ID:FXqxthmv
>>100 ステージの表示リストを参照しちゃだめなのかい?
var sp:Sprite = new Sprite();
var ins = stage.getChildByName ( sp.name );//表示されているならインスタンスを返し、表示されていないならnullを返す。
if( ins == null){
addChild(sp);
}
これなら、普通に表示されてなければ表示になると思うが。
123 :
Now_loading...774KB :2009/08/18(火) 16:59:15 ID:8lF7qsi3
今ActionScript2.0しか習得してないんですけど、 ぶっちゃけAS2.0で不便さを感じたことがありません。 AS3.0になると何がよくなるんでしょうか?
AS3で質問です。 NetStreamを使用して複数のサウンドを同時に再生・管理しようとしています。 そこでクラスを作り、NetStreamをインスタンスで複数作って再生させようとしたのですが 2つ目のインスタンスでPlayすると、1つ目に上書きされてしまいます(同時に再生させたい) 分かる方が居られましたら教えてくだされば幸いです。 var sound1:SoundPlayer=new SoundPlayer(); ---- public class SoundPlayer { private var nc:NetConnection; private var ns:NetStream; public function SoundPlayer():void { nc=new NetConnection(); nc.connect(null); ns=new NetStream(nc); ・・・
>>123 要は使い分け。
1回切りの仕事(作品)や自分1人の作業ならAS2.0でも良い。
けど、継続して拡張する場合や複数で請け負う作品ならAS3.0。
実際俺も、「あーこりゃ、1回きりで時間をそんなに掛けられないな」
と思って『ワザと』AS2.0にしたこともある。
あと動作の軽さもあったり、AIRやPapervision3Dを考慮すればAS3.0。
つまりは(再度書くが)使い分け。
>>121 さんくす。
なるほど、graphicクラスですね。
これなら塗りつぶしもできます。
127 :
Now_loading...774KB :2009/08/18(火) 18:24:32 ID:8lF7qsi3
>>125 なるほど、聞いた感じだと自分が作るFLASHなら
明らかに2.0でいいって事が分かりました。
ありがとうございます。
128 :
Now_loading...774KB :2009/08/18(火) 18:42:18 ID:Grv8emWq
環境)WinXP-Pro,3GB,Core2Duo_E6550,CS3(Player9.0,AS3.0) CPU負荷で質問です。 タイムラインを持つ点のMC(mcA)を多数(たぶん数千個)を入れ子として持つMC(mc1)を 別のMC(mc2)内にaddChildで置くとCPUのファンが唸りを上げて回転し始めます。 模式化すると右のような感じです。 mc2[ mc1[ mcA0〜mcA5000 ] ] ※5000は適当な個数 この場合、それぞれは移動やプロパティ(Alphaなど)やタイムラインの変化が無く、1回 置かれたら静置されたままなのに、(何が原因か分かりませんが)CPUでは何か必死に 継続して計算しているようです。 確かに消費メモリー量は増加しますが、それでも10MB→30MB程度です。 皆さんは、一回多数のMCが置かれたままにも関わらずCPU負荷が上がったままの 経験はありますか? (あと考えられる原因はありますか?) ※ extends MovieClip を extends Sprite にしようと思いましたが、制約上できません。 また、リスナーを弱参照にしてGCしていますが改善されません。
計算してるんじゃない タイムラインを監視してるんじゃないか? 試しにそのMCAの先頭にstop();書いてみたら? あとGCしてるんなら数千個いらんだろ? それにGCは意図的に出来ないよ 特にメインメモリが20〜程度しか使ってないんじゃ…一生GCされない GCしたいなら要らんCGをプレビューソフトで数千枚開いてメモリを一杯にしといて フラッシュを起動してみ? 要するに実験でしょ?細かい事考えんな
4行目が余計だった ごめんなさい
131 :
128 :2009/08/19(水) 03:11:41 ID:XNQE3UIH
>>129 レスさんきゅう。
mcAは10フレーム持っていますが、その全てにstop()を最初の行に入れています。
stop()を入れていても、Playerは(一応というか)他のフレームの見回りをしている
可能性があるということでしょうか?
132 :
Now_loading...774KB :2009/08/19(水) 03:21:13 ID:eCDV2HaT
(前のスレでレスが無かったので再投稿) FlashCS3(AS3.0,AIR_1.0)をWinXPで使用 AIRのソケットで外部のXML(パラメーターを書いたXML)を読み込み、それを元に StageのMC内で描画を行いました。 これはこれで正しく動作したのすが、これとは別に外部フォルダにあるMP3をリスト化して 表示する動作で下記のエラーが出て困っています。 ReferenceError: Error #1065: 変数 ::xml は定義されていません。 at SongPropMC/onFrame()[SongPropMC::frame1:66] ・・・ この変数 xml は、ソケット通信のクラスで var xml:XML; と宣言して使用しているのみ。 しかし該当するクラスの記述を見てもXMLとは無関係のもので、しかも、SongPropMCは 65行までしかありません。 取りあえずSongPropMCのonFrame()は無効にしても問題ないので、これを消したところ 今度は下記のエラーが出ました。 ReferenceError: Error #1065: 変数 ::xml は定義されていません。 at SpectDisp/onFrame()[SpectDisp::frame1:33] SpectDispもXML読み込みとは無関係です。 ハッキリ言ってモグラ叩きの状態です。また、エラーメッセージで指摘された行番号に 間違いがあれば対処しようがありますが、2番目のSpectDispにも33行というのはありません。 どなたかヒント願います。
>>131 そう?
同じように5000個newして作ってみたが、stop();でちゃんと静止したよ
あと、stop();かけなくても最高でも20%いかない。当方Xeon2.26GHz。
じゃ他に考えられるのが描画の負荷
そのmcaは画像もってんの?
画像取っ払ってタイムラインありで5%くらい(タイムラインの監視分?)
画像ありでstop();ありで2.5%くらい(静止ほぼアイドル)
描画の負荷15%ってところか…如何にデカイかがわかるな
画像は150x150の黒い四角。他ドキュメントとかはデフォ(この辺も大きく影響する)
下らない事すんな時間の無駄だ
>>132 8使ってるけど、asファイルをインクルードしてると間違いがあった時に
エラーメッセージの行数とかが当てにならなくなったりするな
135 :
Now_loading...774KB :2009/08/20(木) 21:48:49 ID:9IFaBRdk
9割がた無理かなと思いますが、 flashにjsを読み込ませてflash内にjs表示データを表示したいのですが、 可能なのでしょうか?
136 :
Now_loading...774KB :2009/08/20(木) 22:04:10 ID:jrEGDjda
意味が分からない・・・
話す相手を思いやる気持ちが無い人にしかこういう質問は書けない。
srcでjs読み込ますんみたいなのですね
139 :
135 :2009/08/20(木) 22:54:31 ID:9IFaBRdk
質問べたですいません。 たとえば、document.write("<img src='hage.jpg'>pigya");のようなjsが あるのですが、これを自分の作ったフラッシュの中から呼び出し そのままflash内に画像やテキストを表示したいという質問なのですが、 可能でしょうか? この画像をflash側でattachやloadmovieするのはだめで、あくまで jsを読み込んでタグで指定したデザインそのままに flashで表示する方法です。
>>139 それは試してみればいいんじゃないかな
ただFLASH内でjsファイルをロードしても
動かないと思うのだけど
xml呼び出しとかにしなされ
AS3.0、adobeCS3、winXPなんですがlistコンポーネントにフォーカスがあるときに Enterキーが押されたことを認識する方法が分かりません。 listコンポーネントのKeyDownイベントでは拾えませんでした。 listコンポーネントにフォーカスがある時にはstageのKeyDownイベントでも拾えません。 どげんかしたらよいでしょうか? ちなみに矢印キー(↑、↓、←、→)が押されたことは上記の方法で拾えました。
それってキーボードショートカット無効にして確認してみたの? 矢印キーが拾えるならいけそうなもんだけど
143 :
141 :2009/08/21(金) 11:15:28 ID:yEupEJPU
>>142 無効にしたら動きました〜〜〜〜。
キーボードイベントのときは無効にするかパブリッシュして確認したほうが良いということは知っていて、
パブリッシュをして確認してたつもりだったんですが、プレビューで確認したものと混同してしまったようです。
お陰さまでやろうとしてたことが出来そうです、どうもありがとうございました。m(^^)m
>>134 どうも。
ググっても確かに症状の報告はありますが、報告している本人も
全く原因が分からないようです。僕もお手上げに近いです。
関係ない記述の存在しない行でエラーになりますので・・・
取りあえず、今はXMLを使わない方法で回避しています。
145 :
141 :2009/08/21(金) 16:23:11 ID:yEupEJPU
もう1つずっと気になっていることがあるので質問させて下さいm(_ _)m
環境:AS3.0、adobeCS3、winXP
実験用flaファイルを作ってみました。 ( DLパス => f )
ttp://up.shinetworks.net/cgi-bin/snup/src/shine70636.zip.html ( 実験の手順 )
1. ボタンを押します。リストに8つアイテムが追加され、フォーカスがリストに移動します。
2. 矢印キーの"↓"を押し、6番目のアイテムが選択された状態にします。
3. 再度ボタンを押し、リストの中身を4つの新しいアイテムと入れ替えます。フォーカスはリストに移動します。
4. 矢印キーの"↓"を押し、アイテムの選択を試みますが失敗します。
5. 矢印キーの"↑"を何度か押しているとフォーカスが戻ってきます。
( 本題 )
4. で選択に失敗する原因は 「6番目のアイテムを選択状態にしている」 という情報が残っているためだと思われ
ますが、この情報を初期化することは出来ないでしょうか? リストコンポーネントのインスタンスを新たに
作って古いリストと入れ替えれば一応期待した動作にはなりますが、とてもスマートとは言えません。
( 試したこと )
・ プレビューではなくパブリッシュして実験しました。
・ 以下のようなコードを使っていますがどれも効果がありませんでした。
myList.clearSelection();
myList.selectedIndex = 0;
myList.selectedItem = null;
146 :
Now_loading...774KB :2009/08/21(金) 20:15:01 ID:mIND8hLp
Flashの始めに「Now Loading....xx%/100%」を作りたいのですが、 自分自身のロード、複数の外部ファイル(画像や音声など)のロードをまとめるにはどうしたらいいですか? それそれなら、 自分自身は loaderInfo.bytesTotal と loaderInfo.bytesLoaded、 外部は Progress を使えば出来る事は分かったのですが、 これらをまとめて最初にロード状況を表示し、完了したらプログラムが走る…といった事をやりたいです。 AS3 FlashDevelopで開発しています。 教えてくださいお願いします!
>>145 stage.addEventListener (KeyboardEvent.KEY_DOWN, keyFunc); と 上下キーのコード38と40
とtraceで選択アイテムを監視したら?
フラグの反転は flag=!flag; でOKだし、
myDataProvider.removeAll ();
stage.focus = myList;
myList.dataProvider = myDataProvider;
myList.clearSelection ();
myList.selectedIndex = 0;
myList.selectedItem = null;
は function buttonClick ( e:MouseEvent ) 内部で共用にして良い。
try〜catchでエラーを取る手も。
>>146 完了作業数でカウントをとるのはダメなん?
>>145 myList.selectedIndex = 0;
これで普通にいける。そのflaではこのあとにselectedItem = nullしてるからできてないけど
149 :
148 :2009/08/22(土) 01:11:00 ID:hathSAsY
ごめん。ただselectedIndex=0しただけだと、その後キーボードで操作するとおかしいことになるね これはたぶんSelectableListのバグだと思う キーボード操作するときcaretIndexっていう値をみて上や下のアイテムに移動するけど selectedIndexを更新するときにcaretIndexを更新しないことが原因。selectedIndex=0した後にcaretIndex=0ってできればいいんだけど caretIndexはprotectedなのでできないから 1)コンポーネントソースファイルを編集してバグを修正 2)Listを継承してcaretIndexの値を設定するpublicメソッドを追加 のどちらかでできる
2)Listを継承してcaretIndexの値を設定するpublicメソッドを追加 package { import fl.controls.List; public class ListF extends List { public function ListF(){ super(); } public function setCaretIndex(value:int){ caretIndex = value; } } } これをListF.asとして保存してfla側でimportしてListの代わりに使用 myList.selectedIndex = 0; の下の行に myList.setCaretIndex(0); を書く
152 :
141 :2009/08/22(土) 06:20:12 ID:fAgXWg2B
153 :
141 :2009/08/22(土) 08:39:35 ID:fAgXWg2B
>>148 さんの (1)、(2) のどちらの方法でもうまくいきました!
これが解決しなければlistコンポーネントの代わりになるMCを自作しなければならないところでした。
本当に助かりました、心より感謝申し上げます。
また、
>>147 さんの flag=!flag; や
>>148 さんの (1)、(2) の方法など、大変勉強になりました。
最後に訂正です、
>>59 ,
>>65 に "list.selectedItem は読み取り専用プロパティ" とのやり取りがありましたが、
AS3.0では書き換えることが可能でした。
ではでは、お二方、どうもありがとうございました。m(_ _)m
154 :
Now_loading...774KB :2009/08/22(土) 11:49:43 ID:LEeEVNwd
>>154 考えられる、一番単純な要因として。
パブリッシュ設定の「ActionScriptのバージョン」の項目は
ActionScript3.0に設定されていますか?
156 :
154 :2009/08/22(土) 12:26:45 ID:LEeEVNwd
>>155 回答ありがとうございます。
確認したところ
パブリッシュ設定のActionScriptのバージョンの項目は
ActionScript3.0に設定されていました。( ̄ー ̄;
ActionScript3.0だとまずいですか?
>>156 いえ、ActionScript3.0で正しい設定ですね。
おそらくパブリッシュの設定には、問題ありませんね。
158 :
154 :2009/08/22(土) 12:45:14 ID:LEeEVNwd
>>157 そうですか…
phpinfoもtest.phpも単体では問題なくブラウザで動作します
ただapacheをストップさせても全く同じ結果なのでどうもflash側がphpを動作させてないような…
159 :
154 :2009/08/22(土) 14:01:23 ID:LEeEVNwd
>>155 >>157 すいません。解決したっぽいです。
色々ぐぐってみて、Flashのムービープレビューからだと出来ないとかなんとか…
(パブリッシュしたHTMLファイルをクリックしてもだめでブラウザからURLを入力してアクセスしろとのこと)
■イントラネット設定は既定でオフになりました。
イントラネット設定はインターネット設定よりも低いセキュリティ設定です。
オプションを表示するには、ここをクリックしてください・・■
関係無いかもしれませんがブラウザのこの設定も有効にしておきました。
回答ありがとうございました。お騒がせしました。
すまん誤爆
誤爆情報は意外に貴重な情報であることが多い
Box2dでフィルターなりグループ分けなりを使って 衝突が起こらないようにした物体から 当たり判定を得る上手い方法ってないでしょうか。 衝突による物理現象は発生しないけど、 当たった(重なっている)というのはわかる、 というのが出来れば理想なんですが…。 やっぱり、自前で当たり判定やらないとダメですかね?
164 :
Now_loading...774KB :2009/08/24(月) 23:25:44 ID:+e5xYJvW
as3.0でinclude "file/test.as"と書くとき、 flaファイルの場所が基準になりますが、 別の場所を基準にしたいです。可能でしょうか? 環境はWinXP,flashCS3です。
>>164 include "/c:/test.as";
ドキュメントクラス内で生成しているpublicにしてある、 オブジェクトaObjをvisible = falseにすると 問題なく非表示になります。以下みたいな感じです。 Object(root).aObj.visible =false; そこで、実験で、removeChildを使って 表示オブジェクトから消し去ろうとすると、1120エラーが出ます。 以下の様な感じです。 Object(root).removeChild(aObj); とすると、 1120: 未定義のプロパティ aObj へのアクセスです。 が出てしまいます。 なんで、visibleプロパティは認識するのに、 removeChildがエラーになるんでしょうか。 この違いは何なのでしょう?
Object(root).removeChild(Object(root).aObj); なら通るんじゃね?クソ汚い書き方だけど
Object() でキャストしたものは別インスタンスになるのかな??
169 :
Now_loading...774KB :2009/08/26(水) 14:37:12 ID:M1glroz3
>>169 ○ addChild
× addchild
171 :
Now_loading...774KB :2009/08/26(水) 14:41:58 ID:M1glroz3
>>170 大文字…(0ω0)あ…ありがとうございます
うんこすぎて恥ずかしいです。がんがります。
2.0です MovieClipクラスを継承したクラスを作成しました attachMovie()でそのクラスを適用するにはリンケージのクラスにクラス名を書けばいいのですよね。 ではcreateEmptyMovieClip()で作った空のMCにそのクラスを適用するにはどうしたらいいでしょうか? コンストラクタではMCは作成されないのですよね
>>172 __proto__使えば継承させることはできるけど
リンケージしたクラスattachすりゃ済む話じゃないのそれ?
>>173 空のシンボルをライブラリに作ってリンケージしてってことですか
ほんとに空なのでライブラリごちゃごちゃするからシンボル化させたくなかったのですが
そうしてみます。
175 :
aki :2009/08/27(木) 00:40:31 ID:R1Awuk7I
AS2.0 Player7対応でFLVをストリーミング再生させるとき _root._nc = new NetConnection(); _root._nc.connect("コンテンツパス"); _root._ns = new NetStream(_root._nc); player_mc._video.attachVideo(_root._ns); というふうに定義しましたが、 これって接続が切れた時ってみなさんどのように 再接続していますか?? それとも一回接続切れたら終わりなんですかね? コネクションの定義自体をReleaseのファンクションに 突っ込んでみましたが、上手く動作せずとても困っています。 どなたか教えてもらえれば幸いです。
C言語で言うprintfのように 整形テキストを出力する関数なんてありますか? printf( "%5d,%5d\n", num, time ); ↑こんな感じで指定して、下記のような文字列を得たいと思っています。 ----------------- 123, 12345 1234, 1234 12345, 123 -----------------
177 :
176 :2009/08/27(木) 03:00:31 ID:oTTyzScc
半角スペースが消えるのを忘れておりました。正しくは以下のような感じです。 ----------------- __123, 12345 _1234, _1234 12345, __123 ----------------- スレ汚し申し訳ありません。
replace
ベクターはサイズが小さいが処理が重く ラスターはサイズが大きいが処理が軽い というイメージがあります。 ただ単に長方形を100個ほど動かすだけなら処理の重さは変わらないのでしょうか? ActionScriptは2.0です
>>179 スムーズに動かしたいなら、絶対ラスタイメージにする。
ただし、ローディングバーとか必要になるかも
>>179 サイズが大きい、小さい
ラスタ>ベクタ
動かす処理が重い、軽い
ベクタ>ラスタ
ベクタを処理が重くなるほど動かすときは
ビットマップに変換なんたらかんたらする命令があるよ
>>180 ほんとにただの長方形なので画像化しても50バイトでした
この程度の単純なものならベクターでも変わらないのかなと思って
>>181 調べてみるとビットマップキャッシュというやつがでてきました。
ベクターにしといてキャッシュするのと最初から画像化どっちが少しでも軽いんだろ
FLASHにかかってる負荷やメモリを数値で見ることはできないんでしょうか。
コンパネ?
>>182 A3.0ならメモリ使用量を見れるがAS2.0は分からん。
つーかググれ。
184 :
Now_loading...774KB :2009/08/29(土) 03:55:42 ID:UfcF+En6
Flashと連携して、USB経由でデータを送信する。 USBにつながれている、動くサボテンのおもちゃが動いたり、止まったりする。 こんなことって、ActionScriptで可能ですかね? 馬鹿な私を誰か助けて。
actionscript3.0なのですが、文字列を使ってオブジェクトのプロパティを 参照する方法ってあるのでしょうか? たとえば、objという名前のオブジェクトにmyTextというプロパティを 設定している場合、utils.getProp(obj, "myText")という関数を使うと obj.myTextの参照が返ってくる、みたいな感じで。
>>184 Gainer(モーターを動かしたり、温度の測定も可能)
>>184 Phidgetは?
超いまさらなんだけど
delete a,b:
ってもしかしてbが消せない?
普通にかけるから消せると思ってた
AS3で、Vectorから先頭でも末尾でもない要素を削除するのはどうやる のがいいの? リファレンスみた感じだと次の方法しかないような感じがするんだけど、 正直信じられない。 ・spliceで新しいVectorを作る(←遅すぎだろ) ・ループで回して要素をずらした後、lengthをセットして切り詰め(←遅すぎだろ) delete vec[i]とかやってもダメなんだよね?
190 :
188 :2009/08/29(土) 10:47:40 ID:WA5lfuJc
>>189 返事ありがとう。
えっと、それはVectorで指示した描画内容から1つの描画要素を実質的に打ち消す、
という意味だよね?
でも、今回質問したのは単純なデータ構造の話なんだ。単純に、Vectorから要素を
1つ削除するための方法を探してる。
>>185 var prop:String = "myText";
obj[prop]
普通はspliceで済む話だからなあ。新しい配列なんて作ったっけ?それsliceじゃなくて? それで遅いって言うなら、自分で連結リストとインデックス値持つクラス作って管理すればいいんじゃね? それでsplice以上の速度出るかしらんけど。
193 :
188 :2009/08/29(土) 13:03:37 ID:WA5lfuJc
>>192 あああ、spliceってthisを変更するのか。
リファレンスの戻り値のところ見て「うわ、コピー作るのかよ」って思ってしまった。
勘違いスマン。
そうするとやっぱspliceがいいのかね。毎回オブジェクトをnewするっぽいけど。
194 :
184 :2009/08/29(土) 14:21:24 ID:UfcF+En6
サイズの大きい画像なんかにフィルターをかけたりすると 処理が結構重くなりますが、できるだけ軽くする方法は ありますか?
>>194 正しくは、Phidgets(複数形)だと思う。
AS2.0で作っています マウスを重ねるとだんだん透明になる処理を行いたいです onClipEvent (load) { this._alpha=100; } onClipEvent (enterFrame) { this._alpha-=5; } だと、実行された瞬間に消えていってしまいますし onClipEvent (load) { this._alpha=100; } on(rollOver){ this._alpha-=5; } だと、マウスをのせると5%だけ減って 完全に消すには何回もマウスを乗せなおさなければいけません どのようにすればマウスを1度乗せただけで透明になるでしょうか?
>>197 onRollOverイベントでonEnterFrameにアルファ減らす関数を定義すればいけんじゃね
>>200 ぐだぐだな質問にもかかわらずご教授頂き、ありがとうございました。
callの存在なんて知らんかったorz
>>197 -5だと20フレーム程度で0になるから、フレームレートが高いならそのせいだろう
this._alpha-=3;
this._alpha--;
とか、1フレームごとのマイナスの値を低くすればいいんじゃないか
あとは
>>200 とか。
203 :
名無しさん@そうだ選挙に行こう :2009/08/30(日) 14:35:59 ID:x3V54dZb
CS4(AS3.0, Player10)のWinXP-Pro カスタムクラスがnewされたときにカスタムクラス側からメインタイムライン変数を 参照したいのですが意図通りにならず困っています。 ここでカスタムクラスはGraph_03(ライブラリのMCにリンケージされている),メイン タイムライン変数をvar haba:uint=100; にしていますが、コンストラクタで trace("haba= "+MovieClip(root).haba); と書くと下記のエラーが出ます。 Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 目的は、カスタムクラスのGraph_03の描画パラメーター(大きさや出現回数)として メインタイムライン変数を使うことです。 どうしたら良いでしょうか?
204 :
名無しさん@そうだ選挙に行こう :2009/08/30(日) 14:55:33 ID:4WuidzJf
206 :
204 :2009/08/30(日) 15:13:21 ID:4WuidzJf
ASで、あんなものやこんなもの、ProgressionとかPapervisionとか使いたいけど使い方がよくわからん。 みんなどうやって覚えた??
208 :
名無しさん@そうだ選挙に行こう :2009/08/30(日) 20:52:25 ID:igEZxYGo
>>207 ぐぐれ
ただし、Progressionは曲者
209 :
Now_loading...774KB :2009/08/30(日) 22:05:13 ID:QdIHWpIO
アクションスクリプトで、変数の中の数値を返すものはありませんか? 具体的には、あるスプライトの中のx座標の一桁目を返したいのです。 charAtなどの文字列を返すものでは数値は返ってきませんでしたし、変数の中の数値を一旦文字列に代えようとしても、変数自体の何文字目かが返ってくるのでどうしようもありません。
>>209 1文字づつ読み込んで文字コード(48〜57)と比較、あるいは正規表現は?
AS2でFLVPlasyback使ってカスタムスキンで動画プレーヤー作っているのですが、 カスタムスキンにするとskinAutoHideが使えなくて、 何か代わりになるスクリプトとかないですかね?
>>209 >>変数自体の何文字目かが返ってくる
よく意味がわからん。 変数をいったん文字列にして一文字目を出して数値にしたらいいんじゃないの?
>>209 何か読んでてよく分からないけど、Sprite.xの一桁目ならxを10で割った余りじゃダメなのか?
質問の仕方をまず覚えよう。 相手する価値なし。
>>213 ああ一桁目ってそっちか。
14.4 ←1
248.5 ←2
桁数が違う数字のいちばん左の値がほしいのかと思ってた
>>215 いや、そっちかも知れんよ
最後の方とかよく分からんまま書いたし
憶測合戦やめてw
218 :
204 :2009/08/31(月) 00:31:15 ID:Ijl9/bW8
多分、この辺りが関連してるんだとおもうのですが。。 ※EndlessStar.as //コンストラクタ public function EndlessStar(point_mc:MovieClip, timer:Number, adjust:Number, speed:Number, life:Number, alphaspeed:Number) { this.point_mc = point_mc; this.adjust = adjust*100; this.speed = speed; this.life = life*(Math.random()*2); this.alphaspeed = alphaspeed; myTimer = new Timer(timer); init(); } private function init():void { myTimer.start(); myTimer.addEventListener(TimerEvent.TIMER, timerHandler); } // private function timerHandler(e:TimerEvent):void { var star:Particle = new Particle(speed, life, alphaspeed); var obj:Object = setPoint(); var p:MovieClip = stage.addChild(star); p.x = obj.xpos; p.y = obj.ypos; }
219 :
209 :2009/08/31(月) 01:37:42 ID:r048GBJE
混乱させたみたいでごめんなさい。 頭のほうが疲れておかしくなっているんだ。 ゆっくり整理してからまた来ます。
220 :
209 :2009/08/31(月) 02:01:49 ID:r048GBJE
一桁目とは一の位のことを言っていました。123なら1でなく3のことです。 もしSprite.xが123のときに「x」でなく「3」の数値を返してほしかったのです。 212が書き込んでくれたような方法も試したのですが、うまくいきませんでした。原因は余裕があったら調べてみたいと思います。 たぶん213の意見で正解なんだと思います。ありがとうございます。 試してみてだめだったらまた来ます。 正直自分でも訳の判らないことだと判って書き込みました。ごめんなさい。 反省しております。 今度からきちんと整理してきます。 ごめんなさい。
外部クラスからステージを参照(?)したいのですが、どうすればいいでしょうか 下記ソースのような事をやりたいです package { import flash.display.Sprite; import test.Test; class Main extends Sprite { function Main():void { var test:Test = new Test(); test.run(); } } } package test { public class Test { public function Test():void { return; } public function run():void { //ここでステージの縦横を取得したい。(結果はエラー) trace(stage.stageWidth, stage.stageHeight); } } }
>>221 Mainクラスはstage持ってるよね
stageはStageクラスが入っている変数って思ったらいいよ
だから、 new Test();の時に
new Test(stage);にしてあげて
Testコンストラクタの引数にStageクラスをもらうようにしたらいい。
で、コンストラクタの中でゴニョゴニョしたら、Stageクラスが使えるようになる。
223 :
204 :2009/08/31(月) 09:57:51 ID:Ijl9/bW8
度々すみません。 具体的にはTimerEventで指定したミリ秒ごとに星を生成していますが、「n個まで生成されたら新しく生成しない」というような処理をtimerHandler内に加えたいです。 何卒宜しくお願いいたします。
225 :
Now_loading...774KB :2009/08/31(月) 12:19:42 ID:Bv1ZSz1V
227 :
Now_loading...774KB :2009/08/31(月) 12:49:49 ID:Bv1ZSz1V
>>226 僕もはじめはそう思って気にしてなかったんですけど
グラデーションの原点からある数以上(あるループ回数以上?)遠ざかってしまう
車の速度を変えてもまったく動かないんですよね。
228 :
Now_loading...774KB :2009/08/31(月) 12:53:27 ID:Bv1ZSz1V
×遠ざかってしまう ○遠ざかってしまうと いやぁ、focalPointRaitoの値を遠ざからないよう、ループ関係が狂わないように 車についていくようにプログラミングしようとしたんですけど そうすると、シェイプを描画しなおさなきゃいですね… どうしよう
229 :
Now_loading...774KB :2009/08/31(月) 13:05:03 ID:Bv1ZSz1V
すみませんfocalPointRaitoは関係ないですね(汗 matrix.createGradientBox(〜);で、グラデーション原点をいじれそうですね。 ちょっと色々試してみます。
>>223 3.0まったく触ったことのない俺の推測だけど
30フレーム目のあと1フレーム目に戻るじゃん
そんとき1フレーム目のアクションがまた実行されて
EndlessStarのコンストラクタが呼び出されてるのを確認した
で、1フレに戻るたびに無限生成激重になってく
だからn個まで生成されたら〜は解決にはならないと思う
とりあえず1フレーム目のアクションを
var flag:Boolean;
if (flag!=true) {
flag=true;
var particle:EndlessStar = new EndlessStar( point_mc,//まわりにきらきらを表示させるMC
10,//きらきらが生成されるタイミング/msec
2,//ばらけ具合
3,//落ちるスピード
400,//消える速さ
0.01//アルファ
);
stage.addChild(particle);
}
にしたら解決はしたけど完全に下策だから
point_mcを入れ子にして親を動かすなりなんなりして
アクションが一回だけ実行されるようにしてみたら?
俺はパスとか全然わからんから無理だった
231 :
Now_loading...774KB :2009/08/31(月) 15:20:29 ID:cMDFdPfY
flash CS4 アクションスプリクト3で、 文字が一文字ずつ、出てくるエフェクト (RPGのゲームとかに、よくある、字幕みたいなやつです) をやりたいのですが、どうすればできるのでしょうか?
>>231 A) txt.substring(a, b); → ダイナミックテキストに表示
B) 文字を塗りに変換→MC化
233 :
203 :2009/08/31(月) 15:34:12 ID:b7Ib2t1P
すいません。どなたかお願いします。 addEventListenerでEvent.ADDEDとかを試したのですがダメでした。
234 :
225 :2009/08/31(月) 15:43:18 ID:Bv1ZSz1V
>>233 カスタムクラスをnewするときにコンストラクタでthis渡せばいいんじゃない?
new Custom( this );
>>225 どなたかこの問題の対処法わかるかたいたらお願いします。
235 :
203 :2009/08/31(月) 16:32:02 ID:b7Ib2t1P
>>234 「するときにコンストラクタでthis渡せば」
すいません。仕組みがよく分からないので、再度説明願います。
236 :
203 :2009/08/31(月) 16:33:20 ID:b7Ib2t1P
余計な語句が入っていたので修正。 「するときにコンストラクタでthis渡せば」 →「コンストラクタでthis渡せば」
237 :
231 :2009/08/31(月) 16:40:40 ID:cMDFdPfY
>>232 すいません。もう少し、詳しく教えて頂けると
ありがたい・・
238 :
225 :2009/08/31(月) 17:42:26 ID:Bv1ZSz1V
>>235 カスタムクラスって自分で作ったクラスのことだよね?
↓hoge.as
public class hoge
{
public function hoge( main:MovieClip )
{
trace(main.haba);
}
}
↓flashのメインタイムラインのアクションウインドウで
new hoge( this );
できなかったらごめん
239 :
225 :2009/08/31(月) 17:47:54 ID:Bv1ZSz1V
>>237 var str:String = "うんこうんこうんこぉぉぉ!";
var len:int=0;
addEventListener( Event.ENTER_FRAME, enterFrame );
function enterFrame( e:Event ):void
{
len++;
textField.text = str.substr(0,len);
}
こんなかんじでどう?このままだとあふれるけど
240 :
231 :2009/08/31(月) 18:36:03 ID:cMDFdPfY
ありがとうございます。 これを、このままコピペしてやってみたのですが エラーになってしまいます。どうしてなのでしょうか? また、このプログラムをアクション・フレームに 書き込むだけで、いいのでしょうか?まだ他に、やらないと いけない操作などがありましたら、申し訳ないのですが 詳しく教えていただきたいです。質問ばかりですいません・・
241 :
225 :2009/08/31(月) 18:45:16 ID:Bv1ZSz1V
>>240 そらテキストフィールドつくんないと駄目だよ
ああもう!基礎の勉強くらいしよう!!
var textField:TextField = new TextField();
addChild( textField );
var str:String = "うんこおおおおおおおおおおおおおおおおおおおおおおおおおおおお";
addEventListener( Event.ENTER_FRAME, enterFrame );
var len:int=0;
function enterFrame(e:Event):void
{
len++;
textField.text = str.substr(0,len);
}
↑とりあえずこぴぺでできる
わかりやすいASのサイト
http://hakuhin.hp.infoseek.co.jp/main/as3.html
242 :
204 :2009/08/31(月) 19:38:39 ID:Ijl9/bW8
243 :
204 :2009/08/31(月) 20:06:29 ID:Ijl9/bW8
度々すみません。204です。
もう1点だけお願いします。。
環境
WinXP AS3.0 FP9
ボールの周りに星が降るサンプル"star.swf"を作って、
メインの”sample.swf”に読み込んでいます。
”sample.swf” の座標
var posX:Number = 0;
var posY:Number = 100;
を変えて"star.swf"の位置をずらしたいのですが、
ボールの周りに降っている星だけ移動してくれません。。
”sample.swf” で指定した"star.swf"の座標指定が、
ボールに対する星の始まり位置まで影響していないのが原因なのですが、、
おそらくbox/EndlessStar.as の中のどこかだと思います。。
"star.swf"の位置を上手く座標指定で移動させるにはどうすれば良いでしょうか?
何卒宜しくお願いいたします。
flaファイル一式
ttp://homepage3.nifty.com/testweb/swfload_sample.zip
244 :
225 :2009/08/31(月) 21:55:14 ID:Bv1ZSz1V
リンク先落とせないよん
245 :
Now_loading...774KB :2009/08/31(月) 22:07:22 ID:cMDFdPfY
SWF形式で作成したファイルを、 読み込むには、どうすればいいのでしょうか? Loaderというものを使用するようなのですが
246 :
204 :2009/08/31(月) 22:24:05 ID:Ijl9/bW8
失礼しました。 リンク先ファイル落とせるようにしました。
247 :
225 :2009/08/31(月) 22:57:19 ID:Bv1ZSz1V
248 :
225 :2009/08/31(月) 22:59:52 ID:Bv1ZSz1V
>>245 もし具体的な例がほしかったら
丁度
>>243 氏のやつがloaderつかってるからみてみるといいかも
249 :
225 :2009/08/31(月) 23:07:25 ID:Bv1ZSz1V
>>246 stageにaddChildしてるのが臭い気がする。
ざっとみただけだから適当なこというかもしれないけど
パーティクルもstageにaddChildしてないか?
これじゃ EndlessStarがmovieClipを継承してるいみがないきがするけど
250 :
204 :2009/08/31(月) 23:18:24 ID:Ijl9/bW8
>>249 有り難うございます。
多分、おっしゃる通りです。。
particleはstageにaddChildしてるみたいです。
stage.addChild(particle);
251 :
255 :2009/09/01(火) 00:07:02 ID:j0GogvgE
え?問題解決したの?
252 :
Now_loading...774KB :2009/09/01(火) 00:11:52 ID:TeURsHpG
AS3で、テキストを作成し、それと、他のモーショントゥイーンなどで 作成したオブジェクトと、一緒にAVI形式に、書き出すには やはりSWF形式にしたものを、loadorで適用しなければ いけないのでしょうか? 似たような、質問で申し訳ないのですが もっと簡単な方法があれば、教えていただきたいです。
253 :
255 :2009/09/01(火) 00:22:25 ID:j0GogvgE
「AS3で、テキストを作成し、それと、他のモーショントゥイーンなどで 作成したオブジェクトと、一緒にAVI形式に、書き出す」ってどういうこっちゃ
254 :
204 :2009/09/01(火) 00:22:48 ID:SHxlvsEH
251>> いえ、解決方法はわからず。。です。 ご教授いただけると嬉しいです。。
255 :
Now_loading...774KB :2009/09/01(火) 00:38:09 ID:TeURsHpG
>>253 すいません。説明が下手でした・・
要するに、テキスト部分だけをAS3で作成し
AVIや、クイックタイムで書き出したいんです。
256 :
255 :2009/09/01(火) 01:22:32 ID:j0GogvgE
>>254 stageってのはFlashコンテンツの最前面のレイヤーだと思って!
そしてstageはFlashコンテンツの中でひとつしか存在しない。
それは、たとえswfをloaderで読み込んだとしても変わらない。
あるtest.swfでstageに適当なMCをaddChildしたとする。
もちろんそのswfを直接実行したらそのMCは最前面に表示される。(あたりまえ)
では次に、そのtest.swfをtest2.swfがloaderを使って間接的に読み込んだとしよう。
たぶん204氏はtest.swfの内容はすべてloaderの中に収められると思い込んでるんだろうけどそれは間違い。
test.swfが指すstageはtest2.swfのstageなので、test.swfでstageにaddChildしたMCはloaderから飛び出し、test2.swfのstageにaddChildされる。
だからloaderの座標を変更しても、そのMCの座標はloaderの外にあるので変化しない。
ようするにどうすればいいかアドバイスするとstageにaddChildするなってこと。
stageにaddChildするものはデバッグ情報とかそういうのを一時的に表示させるときくらいだとおもう。(デバック情報などのかならず手前にきて欲しいものがあるときはstage.addChildは便利。)
257 :
225だった :2009/09/01(火) 01:25:21 ID:j0GogvgE
>>255 !!
そんなことできるのかな?かなり高度だよねできたら感動!
できないことはないのかな
258 :
225 :2009/09/01(火) 01:29:30 ID:j0GogvgE
>>255 よく考え直したらFlashでそれをやるメリットなくない?
Perlとかのほうがいいとおもうけど。
ローカルで処理させたいなら、javascript?・・・で、できるのかな?
Flashはファイル操作もできないくらいなんだからそういうの向いてないと思うけど
259 :
Now_loading...774KB :2009/09/01(火) 01:54:31 ID:SHxlvsEH
>>225 その通りの考え方でした。。心見抜かれた感じです。
すごくわかりやすい解説有り難うございます。
そうすると、、この場合は
point_mcにparticleをaddChildすれば解決??でしょうか?
260 :
225 :2009/09/01(火) 02:08:40 ID:j0GogvgE
>>259 聞く前にやってみようぜw
unko.addChild(〜)ってやったらaddChildしたMCがunkoにくっついて動くのはしってるよね?
それをしってれば怖いもの無しだ!がんば!
261 :
204 :2009/09/01(火) 02:23:06 ID:SHxlvsEH
225がんばるなあ 君の問題はわかんないけど応援。 fla板ももっとにぎわうといいな
>>262 でも、応答の度にAgeる必要はないと思う。
そんなに注目を浴びたいのかと。
264 :
203 :2009/09/01(火) 04:53:34 ID:WgLXkkxU
265 :
225 :2009/09/01(火) 10:55:50 ID:j0GogvgE
ごめん2chのルールを忘れてた(汗
266 :
204 :2009/09/01(火) 12:08:29 ID:SHxlvsEH
スミマセン。ボクもsage忘れてました。
" box/star.fla "
stage.addChild(particle); →this.addChild(particle); に変更してみたのですが、
"star.swf"を直接プレビューした状態のように、うまくボールの周りまで移動しませんでした。。
最新ファイル
ttp://homepage3.nifty.com/testweb/swfload_sample_v3.zip " box/EndlessStar.as " の
var p:MovieClip = stage.addChild(star); も関係ありますでしょうか?
度々スミマセン。これだけなんとか解決したい。。
宜しくお願いいたします。
>>266 関係あるっつーか、そこ変えなきゃ結局同じことだと思うけど……
あとParticle.asのfallでstage.removeChildしてるからここも変える必要があるだろうな
星の位置決めはpoint_mc見てるから変えなくても大丈夫そう
268 :
204 :2009/09/01(火) 12:43:58 ID:SHxlvsEH
>>267 var p:MovieClip = stage.addChild(star); と
stage.removeChild(this);を
var p:MovieClip = this.addChild(star); とか
root.removeChild(this);でそれぞれイロイロ変えてみたんですが
うまくいかないです
だれかたすけて。。泣
269 :
225 :2009/09/01(火) 13:11:57 ID:j0GogvgE
CS3 AS2 でデバッガって設定というかカスタマイズみたいなことはできる? 静止テキストまでひとつひとつinstance1とか表示されてうざいことこの上ないんだけど 出ないようにできないのかな
271 :
204 :2009/09/01(火) 15:49:30 ID:SHxlvsEH
>>269 " box/star.fla "
stage.addChild(particle);
" box/EndlessStar.as "
var p:MovieClip = stage.addChild(star);
" box/Particle.as "
stage.removeChild(this);
の3つのaddChild、removeChildの対象を変えれば解決しますでしょうか?
particleはthisだと思います。。 starはparticle??
removeChildは消す時の処理でこれはどう処理するのか分からないです。。
272 :
Now_loading...774KB :2009/09/01(火) 15:54:07 ID:AK7S+UWN
まじでウザいわこいつ
273 :
Now_loading...774KB :2009/09/01(火) 15:56:35 ID:AK7S+UWN
自分で調べる気ゼロ 変えればいいかどうかなんてやってみりゃわかるだろアホが
>>271 225にも「調べろ」いわれてるだろ。
まずはやりたいことを脇に置いて基本を身につけなよ。
四則演算できずに二次方程式の答え教えてくれ、っつってるよーなもんだ。
275 :
225 :2009/09/01(火) 16:03:44 ID:j0GogvgE
>>271 やってみようよ!パソコン壊れるわけじゃないんだからさ!
僕は君への対応をどう処理すればいいのかわからんよw
276 :
225 :2009/09/01(火) 16:04:45 ID:j0GogvgE
みんなド怒りw
>>271 この長さなら他人のソースいじるよりも自分で1から書いた方が早いんじゃね
直接『答え』を見つけるのではなく、色んなサンプルをイジクリまわす方が早い。
>>271 二つ目をpoint_mcにadd〜、三つ目をparent.remove〜にすればいけんじゃね?
.flaの中は見てないから一つ目は分からないけど
原因を考えよう。 1.パーティクルの座標がおかしい。 2.star.flaのthis.addChild(particle);あやしい。 3.EndlessStarクラスをみる。 4.パーティクルの配置がおかしいので該当箇所をみる。 var p:MovieClip = stage.addChild(star); この場合stageはsampleのstageを指すので var p:MovieClip =this.addChild(star);に変更。 star.flaを書き出してみる。 5.エラーが出るはず。 at flash.display::DisplayObjectContainer/removeChild() at Particle/fall() 6.Particleクラスのstage.removeChild(this)が誤っているので 該当階層(親子関係)に書き換えてやる。 以上。
281 :
204 :2009/09/02(水) 12:29:14 ID:vKqvHUL1
282 :
Now_loading...774KB :2009/09/03(木) 01:30:39 ID:hfms/Pus
_root.a1=0; _root.a2=0; _root.a3=0; ・ ・ ・ ・ _root.an=0;(nは整数) っていちいち全部書かなきゃだめ? それともnの位置を変数にして、1〜n番目を代入できるとかいう便利な関数はある?
284 :
Now_loading...774KB :2009/09/03(木) 01:49:06 ID:hfms/Pus
Flash内にAmazon Fps 決済APIを組み込んだ経験のある方いますか? Flashゲーム内で決済APIが使えるのかどうか試しています。 Flashからプラウザウィンドウを出して決済APIを使うやり方ではなくFlash内に呼び出して決済APIを使いたいのですが どなたか試した方はいますか? よろしくお願いします。 ちなみにamazon Fps APIというのはamazonから提供された決済用APIのことです。 このAPIを利用するとamazonに登録したクレジットカード情報などを使ってを自分のECサイトなどに呼び出し決済ができます。 自分は自作の一人用のFLashゲームでアイテムの販売を考えています。 どんなゲームを作ったかというと プラウザでプレイできるアクションRPGゲームになります。MMOオンラインゲームとかではないです。 今までホームページに公開していたゲームですがこれを課金アイテムを販売しアマゾン決済APIで決済できるようにします。 攻略アイテムは10円での販売を考えています。 なぜamazonの決済APIを選んだかというとユーザー登録などをしなくてもamazonのアカウントがあればすぐに買うことができるためです。 小額決済にも対応し手数料も1.8%、導入手数料もなしとお手ごろで開発者側、利用者側にも使いやすいものだと思っています。
無理。他ドメインのもん使えない。
287 :
225 :2009/09/03(木) 13:05:25 ID:VPOSEp6H
AS3+FlashDevelop+XPProです。 default.xml <road> <option> <baseline stripe="0" color="0x777777"/> <leftline stripe="0" color="0xFFFF00"/> <rightline stripe="0" color="0xFFFF00"/> </option> <line length="10"> <begin width="10" pos="0"/> <end width="10" pos="0"/> </line> </road> base.xml <road> <line> <begin width="12"/> <end pos="8"/> </line> </road> の、二つのXMLがあって、base.xmlに足りない要素をdefault.xmlからもって 新しいXMLを作りたいのだけれど、簡単にできる方法おもいつきますか?
288 :
225 :2009/09/03(木) 13:10:16 ID:VPOSEp6H
欲しい結果 <road> <option> <baseline stripe="0" color="0x777777"/> <leftline stripe="0" color="0xFFFF00"/> <rightline stripe="0" color="0xFFFF00"/> </option> <line length="10"> <begin width="12" pos="0"/> <end width="10" pos="8"/> </line> </road>
なんか、toXMLとかなかったけメソッド。 XMLはストリングから生成できるし
290 :
204 :2009/09/03(木) 21:01:15 ID:QJz6+U3e
どこで質問すればいいか分からないのでここで質問させてください。
YouTube APIを使用して独自のプレーヤを作っています。
このプレーヤの動画再生に再生速度の調整機能を付けたいのですが、方法がいまいち思いつきません。
YouTube APIに再生速度の調整機能はありません。
Enounce MySpeed(
http://www.enounce.com/index.php )というソフトでは、ブラウザ上で動いている
YouTubeなどのFlashプレーヤ上での動画再生の再生速度調整が行えています。
これと同じような機能を自作のアプリケーションに付加したいのですが、良い方法はないでしょうか。
JavaScriptからFlashのフレームレートを動的に変更できれば可能かとも考えましたが、いまいちやり方がわかりません。
292 :
225 :2009/09/04(金) 02:27:43 ID:sdpXpeZj
loaderで読み込んだswfをconstractorで複製したとき 読み込むswf内でスクリプト書かないと正しく複製できないバグ発見したので報告。 メインタイムラインに「;」とか書くと正しく複製できるようになる。 ん〜めんどくせぇ。
293 :
225 :2009/09/04(金) 02:39:58 ID:sdpXpeZj
>>287 自己完結!やっとできたので一応報告。
public function fillDefault( xRoad:XML, xDef:XML ):XML
{
for each( var elem:XML in xDef.children() )
{
var name:String = String( elem.name() );
// タグが定義されていなければデフォルトで上書き
if ( xRoad[name] == undefined ) xRoad[name] = xDef[name][0]; // とりあえず先頭優先
else
{
// パラメータが定義されていなければデフォルトで上書き
for each( var par:XML in xDef[name].@* )
{
var parName:String = "@" + par.name();
trace( parName );
if ( xRoad[name][parName] == undefined ) xRoad[name][parName] = xDef[name][parName];
}
// 再帰的に子要素も上書き
for ( var i:int = 0; i < xRoad[name].length(); i++ ) xRoad[name] = fillDefault( xRoad[name][i], xDef[name][0] );
}
}
return xRoad;
}
>>287 何をもって「足りない」と判断するかがわからんけど、
insertChildAfterあたりでつっこめばいいんじゃ?
AS3で教えてください! フレームレート60に設定し、画面の端にフレームレートを表示させたら、 0になったり100近く出たりと、ばらつきがあります。 処理が重い時は60未満になるとしても、上限は60にしたいのですが そのような事は制御可能でしょうか?
296 :
295 :2009/09/04(金) 09:39:28 ID:qyIBQeYR
295です。できました! すみません
297 :
290 :2009/09/04(金) 11:12:33 ID:NZRYtEwK
particleCountとlimitを使って制御している部分が要因ぽいのではないかと思っています。インスタンス生成時に渡すパラメータもおかしい?
298 :
225 :2009/09/04(金) 11:39:14 ID:sdpXpeZj
>>297 怪しい部分がわかっているのに調べないという不思議
299 :
Now_loading...774KB :2009/09/04(金) 14:12:23 ID:XEJVNSA1
質問です。 as3でi1,i2,i3,…みたいな感じで forループのなかで動的に順番に変数名を付けていく方法がわかりません。 どなたか、ご教授いただけないでしょうか。
300 :
290 :2009/09/04(金) 14:16:35 ID:NZRYtEwK
調べてみるのですが、どこがおかしいのか分からず どうすればよいかサッパリなんです。。 スミマセン。。 出来る限り自分でやってみますので、 アドバイスかヒントをいただけると嬉しいです。 よろしくお願いいたします。
>>299 eval使えれば
eval("i" + no);
でいけると思うけど、試してみてくれ。返値が変数値になるはず。
ダメなら連想配列でどうか?
AS学習中なのですまん。
302 :
225 :2009/09/04(金) 15:11:58 ID:sdpXpeZj
>>299 for( var i:int=0; i<10; i++ )
{
this["i"+i] = "うんこ";
}
こういうことがしたいってこと?
作りたい変数がi1,i2,i3っていうからなんかちょっとややこしくなってるけど
303 :
299 :2009/09/04(金) 15:22:48 ID:AKtg9Edz
>>301 さん
for(var i:int=0;i<10;i++){
var eval("a"+1):int;
}
で実行してみましたがエラーになりました。
どこか、301さんの考えられた書き方と違うのでしょうか?
連想配列もちょっと試してみます。
>>225 さん
そういうことがしたいです。
as2だと宣言がいらなかったので簡単だったのですが。。
>>303 配列にブチ込むってのはどうなの?
var ar:Array = new Array();
for(var i:uint=1; i<6; i++){
ar.push( "羊が" + String(i) + "匹")
}
for each(var h in ar){
trace(h);
}
>>303 eval()使うと「この機能は廃止された」って出るね。
JSでも嫌がられているものだから消えたか。
でもeval()でも生成はできないから、連想配列の添え字化するしかないかな。。。
306 :
290 :2009/09/05(土) 18:28:45 ID:4dy8yxB5
やはりparticleCountとlimitを使って制御している部分がおかしいような気はするのですが、、どう直すのかがわからないです。。
307 :
Now_loading...774KB :2009/09/06(日) 23:11:21 ID:8YH80dex
WinXP-Pro(AS2.0,CS4)で、フォーカスされたボタンのプロパティ参照で質問です。 var focusedObj:Object = new Object();として、onEnterFrame = function() で focusedObj = Selection.getFocus(); としました。これはtraceすると正しく出ます。 このボタンのX座標を知ろうと trace("x= "+focusedObj._x); としたのですが x= undefined になり、値が得られません。 どうしたら良いでしょうか?
>>307 それ、ストリング値が返るってあるから、focusedObjにはいってるのは
object参照じゃないんでは?
>>308 object参照じゃないんでは?
う〜ん、そうなんですよね・・・
試しに、trace("x= "+[focusedObj]._x); でも x= undefined のままです。
かといって、focusedObj.substring(0, 5) としても何も出ませんし。
困ってます。
>>309 eval()使えばいけるけど…それが正しい方法なのかわからないです。
「詳説 ActionScript 3.0」のサンプルコードファイルを落とせるところありませんか?
Flash CS3で作成された外部SWF内のクラスを継承して 新しいクラスを定義することは可能ですか?
すみません、どなたか教えて頂けると助かります。 package{ import flash.display.Sprite; public class Test extends Sprite{ var a:Number; var b:Number; public function Test():void{ a = 1.0; b = 1.0; } } } class A{ public function A():void{trace("a");} } class B{ public function B():void{trace("b");} } このコードをCS4でコンパイルすると 1178:アクセスできないプロパティaへのアクセスを、静的型Testの参照を使用して試行しました。 1178:アクセスできないプロパティbへのアクセスを、静的型Testの参照を使用して試行しました。 とエラーになってしまうのですが、なぜでしょう。 ちなみに、クラスAもしくはクラスBのどちらかをすべてコメントアウトすると うまく行きます。 さっぱりわからないっす・・・
>>314 エラーの原因かは分からないが、とりあえずコンストラクタに戻り値を書くのが間違ってないか?
316 :
314 :2009/09/09(水) 01:10:37 ID:G3VgZTwO
>>315 そうですね!
戻り値消してみましたが、だめでした・・・
import flash.display.Sprite; class A extends Sprite{ public function A() { trace("a"); } } class B extends Sprite{ public function B() { trace("b"); } }
package{ import flash.display.Sprite; public class Test extends Sprite{ public var a:Number; public var b:Number; public function Test():void{ a = 1.0; b = 1.0; } } } class A{ public function A():void { trace("a"); } } class B{ public function B():void { trace("b"); } } こうじゃねーの? 属性省くとinternalになるんじゃなかったっけ?
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Sprite; [SWF(width=740, height=500, backgroundColor=0xFFFFFF)] public class Main extends Sprite { public function Main():void { //スプライトを作る var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0x8080FF); circle1.graphics.drawCircle(50, 80, 40); // メインのタイムラインにcircle1を追加する addChild(circle1); } } } このソースのスプライトを作る部分を外に出したいのですが、どうすればいいのかわかりません。 今書いているコードは次に…
Main.as package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Sprite; [SWF(width=740, height=500, backgroundColor=0xFFFFFF)] public class Main extends Sprite { public function Main():void { DrawSprite(); } } }
DrawSprite.as package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Sprite; public class DrawSprite extends Sprite { public function DrawSprite():void { //スプライトを作る var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0x8080FF); circle1.graphics.drawCircle(50, 80, 40); // メインのタイムラインにcircle1を追加する addChild(circle1); } } } このように書いてもできないようです。 上記のように別ファイルに描画処理を出したい場合はどうすればいいのでしょうか?
これを実行すると 「C:\Flash\Test01\Main.as(14): col: 5 Error: 引数の数が正しくありません。正しくは 1 です。」 と言われるので、DrawSprite( Sprite ); とかやってみましたが駄目でした
mainのdrwspriteのとこを var d:DrawSprite = new DrawSprite(); こんなのでいいの?
ありがとうございます。 var draw : DrawSprite = new DrawSprite(); addChild( draw ); とやったら出ましたw
毎フレーム画面を更新するゲームのような処理で、画面のクリアはどうするんですか? 矩形の塗りつぶし?
>>325 ちょっとよくわからないが
真っ白な状態にしたいの?
ゲームプログラムに詳しいなら背景の上にスプライトがあるイメージ。
328 :
ジャクソン :2009/09/10(木) 08:52:59 ID:NWfWfjrH
教えてほしいのですが、 ムービークリップ内の1フレーム目に damy_mc.addEventListener(flash.events.MouseEvent.CLICK,openSlide("baka")); と記入し、 関数openSlideをMainクラスに書いたのですが、 パブリシュするとopenSlideが未定義の関数とエラーが返ってくるのですが、 どのようにクラスと連携すれば良いのでしょうか。 もちろん、Mainクラスを読み込んでいます。 ちゃんと読めていないんでしょうか。
325ですが、全画面背景を書くわけではないので書かないエリアにキャラクターの絵が残ってしまうのです。 なので、毎フレーム画面クリア>キャラクター描画というのをやっているのですが、drawRectで塗りつぶしてていいのだろうか…と 一番効率のいい描画方法がわからないです。
下記のやり方では画面がチラついて困っています。 package { import flash.display.Sprite; public class DrawCircle extends Sprite { private var circle:Sprite = new Sprite(); public function DrawCircle():void { addChild(circle); } public function Draw( mx:int, my:int ):void { circle.graphics.clear(); circle.graphics.beginFill(0x8080FF); circle.graphics.drawCircle(mx, my, 40); } } } キャラクターがチラつかないように描画したいのですが、どうすればいいでしょうか?
331 :
330 :2009/09/10(木) 11:51:22 ID:zayK1lw7
Main.asからはインスタンス生成後、30fpsの周期でDrawを呼んでいます。
332 :
Now_loading...774KB :2009/09/10(木) 15:05:24 ID:99yQ/NxO
phpからactionscriptへ変数を渡したいんですが、うまくいきません。 PHP <?php $hoge='hogehoge'; $output="&hoge=".$hoge."&"; header('Content-type: text/plain'); print '&'.$output.'&'; exit; ?> asctionscript function get_data(){ var sv:LoadVars=new LoadVars(); var lv:LoadVars=new LoadVars(); lv.onLoad=function(success){ text=lv.hoge; } sv.sendAndLoad('./as/get_album_data.php',lv,'POST'); } とすると textフィールドに ".$hoge." のように表示されてしまいます。 色々試したのですがうまくいきません、ご教示お願いします。
環境を書け。 Win95か?
334 :
332 :2009/09/10(木) 16:06:58 ID:99yQ/NxO
すいません忘れてました。 XP,ローカル環境でXAMPP、AS2.0です。 お願いします。
>>332 そもそもget_alubum_data.phpに普通にブラウザからアクセスした場合、
意図したように$hoge=hogehogeと表示されてるの?
>>330 特にちらつく要素ないと思うけどなあ
30FPSでenterFrameイベントでまわしてみたけどちらつかなかったよ
ttp://www.kazumy.net/toss/hp/flash/kobo/pzl/timer.htm こちらのサイトの経過時間表示で、小数点以下も表示したいのですが
どのように変更すればよろしいでしょうか?
timer内のアクションスクリプト↓
//グローバル変数の初期化
countTime = 0;
bActive = 1;
startTime = getTimer();
//タイマーストップ用メソッドの定義
function stopTimer() {
bActive = 0;
}
//タイマーの動作を行うメソッドの定義
function action () {
if (bActive) {
var nowTime = Math.floor((getTimer() - startTime)/1000);
countTime = nowTime;
}
}
//このタイマーの値を調べるときに使うメソッド
function value () {
return countTime;
}
338 :
Now_loading...774KB :2009/09/10(木) 19:35:42 ID:N80QSBqq
ageてなーい… どなたか宜しくです ほとんどASを使わないゲームを制作していて 時間の表示だけどうしてもワカラン
325=330? Main側に画面クリアがある? Spriteなら書いたものを動かす。30fpsの周期でDrawを呼ばない。
package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var circle:DrawCircle; public function Main() { init() } private function init():void { circle = new DrawCircle(); circle.x = 0; circle.y = stage.stageHeight / 2; addChild( circle ); addEventListener(Event.ENTER_FRAME, onEnterFrame) } private function onEnterFrame(eventObject:Event):void { circle.x += 10; } } } import flash.display.Sprite; class DrawCircle extends Sprite { public function DrawCircle() { init() } private function init():void { graphics.clear(); graphics.beginFill(0x8080FF); graphics.drawCircle(0, 0, 40); } }
342 :
Now_loading...774KB :2009/09/10(木) 20:22:23 ID:YDgp2UWu
すいません、AS2についての初歩的な質問をさせてください。 AS3のaddChildにあたるものは、AS2では何になるのでしょうか? 外部jpgを読み込むスクリプトをAS2で書いています。 読み込む処理自体は、MovieClipの生成を含めて外部クラスでやっています。 var imgLdr:MovieClipLoader = new MovieClipLoader(); var mc:MovieClip = new MovieClip(); imgLdr.loadClip("jpg/" + tnNewList[0] +".jpg", mc); ここで、mcをステージにaddChildしたいのですが、 そのようなコマンドが無く、よわっています。。 AS2ではどうすればよいのでしょうか?? var mc:MovieClip = new MovieClip(); の部分もおかしいのでしょうか?? どなたかご存知の方いらっしゃいましたら よろしくお願いいたします。
>>342 空のMC作るなら、親のMovieClipのcreateEmptyMovieClip
もうAS3でいいじゃないと思うのは俺だけなんだろうか
345 :
Now_loading...774KB :2009/09/10(木) 20:38:22 ID:bZeodrCV
>>342 ありがとうございます!
その親のムービークリップを、ステージに配置するには
どうしたら良いでしょうか?
つまり簡単言えば、スクリプトだけで
ムービークリップを作ってステージに配置する方法がわかりません。。
346 :
Now_loading...774KB :2009/09/10(木) 20:42:13 ID:bZeodrCV
>344 私はAS3から入ったもので、 AS2は逆に難しいです。。
347 :
Now_loading...774KB :2009/09/10(木) 20:43:50 ID:N80QSBqq
>>341 ありがとうございます!できました!
ただ、ちょくちょく点滅してしまうのですが (0のときに桁数が変わるからでしょうか?)
常に表示させておく方法ありますか?
>>345 この場合最初に出来るのは、親=_rootに対してのcreateMovieClip()
>>348 間違った、createEmptyMovieClip()でした。
350 :
Now_loading...774KB :2009/09/10(木) 21:54:14 ID:sgo2Tnfu
>>349 できました、ありがとうございます!!
ほんとに助かりました!!
351 :
332 :2009/09/10(木) 22:38:28 ID:99yQ/NxO
環境 XP FlashDevelop AS3 AS3でSpriteやTextFieldを配列で宣言する事は出来ないんでしょうか? 試しに下で実行してみましたが何も映りませんでした。 仮に10個のTextFieldを使用したい場合は、10個用意して使うものなんでしょうか? package { import flash.display.Sprite; import flash.text.TextField; // クラス public class Main extends Sprite { private var sampleText1:Array; public function Main():void { for (var i:int = 0; i < 3; i++ ) { sampleText1[i] = new TextField(); sampleText1[i].text = "1-" + i + "番"; sampleText1[i].y = 10 * i; addChild(sampleText1[i]); } } } }
>>352 sampleText1をNewしてなくね?
>>353 本当にお騒がせしました。
private var sampleText1:Array = new Array;
で表示されました。ありがとう御座いました。
355 :
Now_loading...774KB :2009/09/11(金) 10:09:19 ID:uW/Xptf8
『100秒経過ししたら次のフレームに移動』 flash8、as2でどのようなスクリプトを書けばよろしいでしょうか? getTimerとifを使う感じ?
>>355 一回だけの処理ならsetTimeoutかな
357 :
Now_loading...774KB :2009/09/11(金) 21:41:44 ID:FJzOmS19
【AS3】 TextFieldにfor文で一気に代入したいのですが。。 ステージに、Flashのオーサリングから テキストフィールド(ダイナミックテキスト)を3つ作りました。 インスタンス名 "t_txt1" "t_txt2" "t_txt3" forループで、この3つに一気に "あいうえお" を代入して表示させたいのですが for(var i:int; i>3; i++){ "t_txt"+i.text = "あいうえお"; } と書いても、"t_txt"+i の部分が インスタンス名として認識してもらえず エラーになってしまいます。 どうすればいいでしょうか。。? ご存知の方いらっしゃいましたらどうかよろしくお願いいたします。
359 :
355 :2009/09/11(金) 23:55:23 ID:VXtSSZbm
360 :
Now_loading...774KB :2009/09/11(金) 23:58:04 ID:Wls6VVSK
ほとんどASを使わずに書くんだったら、 制限時間分のフレームを用意したシンボルを作って、 その最後のフレームで、_root.gotoAndPlay(ゲームオーバーのフレーム);というASを書く。 で、そのインスタンスをゲームスタートの部分におけばいいんじゃない?
361 :
Now_loading...774KB :2009/09/12(土) 00:33:04 ID:lkqldZ5p
一応時間を表示させていまして (getTimerで取得した時間をそのまま表示) その秒数が100になったときに終了させたいので、フレームだと誤差が生じてしまいます。 ですので取得した時間を使って作りたいのであります。
getTimerで取得してる所に判定入れるだけじゃないのか?
363 :
361 :2009/09/12(土) 10:36:59 ID:f+UQr/ki
そのやり方が分かりません(--;) 何か参考になるサイトありますか? ASは全くの初心者です(時間もフレーム移動で表示していた程であります) 1から勉強するような必要もないので…
マジレスで質問の仕方を学んだほうがいいと思う 終了って何? getTimerあたりのコードコピペするだけでも何言いたいのか伝わるかもしれない >1から勉強するような必要もないので… これも意味不明
>>363 >1から勉強するような必要もない
必要ないんじゃなくて、単に勉強したくないだけだろ。
「数学の問題解きたいです、でも1+1もわかりません、
算数の勉強をする必要もありません」といってるのと同じ。
どうしてもAS使わないなら、
>>360 の方法にして、時間もフレーム移動の表示でいいじゃん。
AS使うなら、まずはifを使って「getTimer()の値が100になったら」っていう条件を
どう書くか自分で考えてやってみる。
そもそもgetTimer()はどこでどう呼び出してるの?そういう説明もしないと。
366 :
Now_loading...774KB :2009/09/12(土) 17:47:41 ID:f+UQr/ki
>>364-365 ちょっと参考書でも買って学んでみたいと思います。
ありがとうございました!
367 :
361 :2009/09/12(土) 19:13:21 ID:lkqldZ5p
>>364 誤: 秒数が10になったときに終了させてたい
正: 秒数が10になったときにフレームを移動させたい
if (getTimer() >= 10*1000) {
_root.gotoAndStop("gameover");
}
これでは10秒経過しても指定のフレーム(gameover)に移動しないのですが
一度しか実行されていないということでしょうか?
制限時間だけ設ければ完成するのに、ここだけワカラン…
>>367 たぶん予想通り、そのコードが毎フレーム実行されて無いんじゃないかな。
ifの直前にtrace("hoge");とか書けば確認できると思うよ。
というか、
>>365 の「getTimer()はどこでどう呼び出してるの?」はスルーかい?
flaファイルをアップするまでいかなくとも、
可能な限りの説明をした方がきっと解答に近づけるよ。
369 :
Now_loading...774KB :2009/09/12(土) 19:50:05 ID:lkqldZ5p
>>368 返信サンクスです。
>>365 「getTimer()はどこでどう呼び出してるの?」
最初にゲームタイトル画面(1フレーム目)がありまして
スタートボタンを押すと次のフレームに移動し、ゲーム開始となります。
開始と同時にgetTimerを呼び出し、経過時間を表示させてます。(2フレーム目)
具体的にはイライラ棒のようなゲームを作っていまして、
コースにぶつかると"gameover"のフレームに飛びます。
制限時間を設けたくて、20秒経過したらぶつかったときと同じように
"gameover"フレームに移動させたいのですが、そのスクリプトが分かりません。
>>369 なんかその場しのぎの感が否めない。
ASの本なんて山ほど出てるから、何冊か買ってその中の
サンプルを改変して遊んだ方が早いと思うぞ。
371 :
369 :2009/09/12(土) 21:28:08 ID:lkqldZ5p
>>368 繰り返し実行させるため、適当にシンボルを作成し
シンボル内に次のスクリプトを書いたのですが(2フレームにすれば繰り返すということで)
if (getTimer() >= 5*1000) {
_root.gotoAndStop("gameover");
}
3.4秒くらいで"gameover"フレームに飛んでしまいます。
この辺りの誤差はどう消せば良いでしょうか?
そもそもやり方が間違ってますか?
>>370 ご指摘の通りです。
やっぱり一から勉強してみますっ!
373 :
Now_loading...774KB :2009/09/13(日) 01:55:18 ID:rF4emLn2
LAMPかな
AS3です。 ボタンクリップだと、ASでCLICKなどマウスイベントできないことあります。 ムービークリップでないといけませんか?
376 :
Now_loading...774KB :2009/09/14(月) 01:19:23 ID:OHmSrQ4q
FLA8 AS2の者です。マウスを早く動かせば動かすほど 全体の動きがそれに合わせて早く動いてしまうのですが (マウスを止めていると通常の速度で再生されます) 何か原因わかる人いるぅ〜(;´Д`)??
377 :
Now_loading...774KB :2009/09/14(月) 02:00:12 ID:OHmSrQ4q
ちなみにマウスには次のASを入れてます。 再生速度が速くなる原因とは思えないのですが… #initclip 2 Object.registerClass( "arrowCursor", TMCustomCursorClass ); #endinitclip
>>376 TMCustomCursorClassって、どんなクラス?
クラスの内容がわからなきゃ判断できないだろ。
ASの内容を理解してないなら、
予断で「原因とは思えない」とか決めつけて説明を省略しない。
具体的に、何がどうなってるのか、どういう構造なのか、詳しく書く。
第三者が同じものを再現できるだけの情報を出すか、自分で問題を切り分ける。
それこそ、
>>377 のASを削除して問題が起きないなら、原因はその部分にあると
わかるだろ。
379 :
Now_loading...774KB :2009/09/14(月) 14:21:28 ID:wA+3Y1ue
たびたびお世話になっております。今回もよろしくお願いします。 AS2です。 FLASH→PHP DOM使ってXMLで出力→FLASHで受け取る PHPで echo 'xml='.$dom->saveXML(); と出力して FLASHで受け取るということは出来ないのでしょうか? $dom->save()で保存しておいてflash側でファイルを開くとするしかないのでしょうか? お願いします。
すみません、どなたか
>>314 の原因わかるかたいらっしゃいませんか?
これってCS4だけなのかな・・
他のサイトに勝手にコピーされて使用されないように、 アクションスクリプトで自分のWEBから再生されているかを チェックしたいんですが、自分がどのURLから再生されている かを調べるにはどうしたらいいですか?
すいません。「自分」とは作成したSWFファイルのことです。
>>380 standardモードにするか
this.a = 1.0;
this.b = 1.0;
にする
385 :
Now_loading...774KB :2009/09/15(火) 11:37:41 ID:wh1FNvEj
>>381 .htaccessの勉強をしなさい!
そんなの簡単にできるYO!
387 :
Now_loading...774KB :2009/09/15(火) 15:47:44 ID:5FDGMdPt
教えてほしいんですが、 インスタンスの深い階層から、rootのメインフレームに読み込んでいる クラスの関数を呼び出しんですが、どのようにすれば良いのでしょうか。 MovieClip(root).Main.func(a); ※Main・・・クラス,func・・・関数 としたのですが、無理でした。 教えていただけないでしょうか。
388 :
Now_loading...774KB :2009/09/15(火) 16:23:46 ID:w8zSstsD
質問です AS3.0でflashPlayer10の際に Vectorで多次元配列ってできるのでしょうか? 実際やりたいのは三次元配列なのですが・・・
>>385-386 なんか勝手読みしすぎじゃないか?頭硬いなw
.htaccessじゃ無断転載は防げないだろ
まあURLチェックも完全じゃないけどな
390 :
Now_loading...774KB :2009/09/15(火) 17:26:09 ID:RLxGxgZI
CS4(AS2.0)をWinXPです。 配列要素の文字列・数値の判別はどうしたら良いでしょうか? いま Arr = {平成,3.14,太郎君,1.414} とあって、これをfor文で for (id=0; id<4; id++) { if (parseFloat(Arr[id]) == NaN) { // 非数なのでFalseを出力 } else { // 数値なのでTrueを出力 } } としました。意図した結果は False True False True になるはずですが、全部Trueになります(判別されていない?) どうすべきでしょうか?
391 :
314 :2009/09/15(火) 19:42:23 ID:MlZHfqzO
>>384 ありがとうございます!うまくいきました。
ということは、
>>314 に書いたコードでは、
書き方が駄目ってことなんすね。
class Aまたはclass Bをコメントアウトすると
うまくいくってのが謎すぎるけど・・
おまいら初心者にはもっと優しくすれ
>>391 いや俺も理由は分かってないんだ。
もしかするとpackage外のクラスは2つ以上だと動作保証しないとかで
意味がない修正かもしれない。
誰か引き続きよろしく。
394 :
Now_loading...774KB :2009/09/15(火) 21:05:33 ID:wh1FNvEj
395 :
Now_loading...774KB :2009/09/15(火) 21:07:12 ID:744M9POY
文字列をreplace()で置換し、 全ての </p> を取り除きたいです。 その場合、replace(/●/g, ""); というふうにして、 ●には</p>を入れるのですが、 そうすると replace(/</p>/g, ""); となってしまい 置換したい文字に"/"が含まれているため、エラーになってしまいます。 こういう場合、どうすればよいのでしょうか。。 色々探しても載ってなくて途方に暮れています。。 ご存知のかたいらっしゃいましたら、どうかよろしくお願いします。
396 :
Now_loading...774KB :2009/09/15(火) 21:10:15 ID:744M9POY
書き忘れました、AS3です
397 :
Now_loading...774KB :2009/09/15(火) 21:12:05 ID:rxwzVpNH
displayObject の cacheAsBitmap プロパティについての質問です。 この cacheAsBitmap プロパティという奴がよく分からなくて調べているのですが 要するに Flashプレイヤーは何もしない単純な矩形だけの displayObject でも 設定したフレームレート(30fpsなら毎秒30フレーム)毎に律儀にプロパティを読み込んで 書き直しているけど、どうせ同じ描画処理なら一々書き直すのはめんどいから キャプチャした写真(bitmap)でいいんでない? という意味のプロパティでしょうか?
ああ
399 :
Now_loading...774KB :2009/09/15(火) 21:25:35 ID:wh1FNvEj
>>396 勘で悪いんだけどそういう場合ってエスケープ文字使うと思う
\だか逆スラッシュ(\の半角)だか。
replace(/<\/p>/g, "");でどうかなー
400 :
Now_loading...774KB :2009/09/15(火) 22:52:21 ID:TXZpDRCN
>>399 できました!ありがとうござますっ!
おかげさまで作業がはかどるようになりました!
401 :
314 :2009/09/15(火) 23:09:16 ID:MlZHfqzO
>>393 なるほどです。
>package外のクラスは2つ以上だと動作保証しない
これなのかもしれないですね。どうなんだろう。
ただpackage外のクラスは2つ以上書いても問題ない時もあるんですよね。
もうちょい考えてみます。
引き続き、どなたかおわかりでしたら、宜しくお願いします。
>>401 動作保証外だから動いたり動かなかったりなんだろ。
そもそも代替きくし、いらないものなんだから、悩むより新しい事覚えた方がいいと思う。
403 :
390 :2009/09/16(水) 13:10:38 ID:34MqfWgb
404 :
Now_loading...774KB :2009/09/16(水) 19:03:18 ID:p4vvo/fs
AS2:FLVPlaybackで、複数の、サイズ(縦横比も)バラバラのflvを読んでいて、 切り替わったときに flvをFLVPlayback内でセンターで表示ってできないもんなのでしょうか? resizeイベント取得時に位置を再設定しても、FLVPlayback自体のサイズは変わっていないようで うまいこといきません。。 AS3だと registrationXプロパティというのがあるようですが AS2では仕様上できない感じでしょうか.
405 :
Now_loading...774KB :2009/09/17(木) 22:45:49 ID:XRofI49D
AS3でテキストファイルを読み込みたいのですが、なぜかbinフォルダ以外のフォルダだとURLLoaderの ロード開始のところでフリーズ(リスナーを含め、それ以降のプログラムが一切動作しない)してしまいます。 sample.txtはちゃんと配置してありますし、アドレスは半角英数のみです。 URLLoaderをURLStreamにしても変わりません。 どうすれば読み込めるようになるのでしょうか。お願いいたします。 環境、FLEX3+FlashDevelop3 ソース、 package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.net.*; public class Main extends Sprite { private var urlLoader:URLLoader = new URLLoader(); private var tf:TextField = new TextField(); public function Main() { tf.text = "プログラム起動"; addChild(tf); urlLoader.load(new URLRequest("sample.txt")); urlLoader.addEventListener(Event.COMPLETE, completeHandler); tf.text = "読み込み開始"; } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); tf.text = loader.data; } } }
デバッグプレイヤー入れてる?おそらくセキュリティサンドボックス侵害では? XPなら C:\Documents and Settings\ユーザー名\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust の*.cfgに書かれていないパスでは読み込みできないはず。
>>405 プログラム起動と同時に読み込みにしなければダメなん?
分けて書いたら?
あと、
var loader:URLLoader = URLLoader(event.target);
tf.text = loader.data;
の意味が分からん。俺なら
tf.text = event.target.data; と書く。
インテリセンス利くし別にそれはいいだろw
間違って英語版買っちゃたけど これってswfファイルからばれることある?
英語版であることがばれて困るのか? てかスレ違い
英語版使ってると割れかと勘違いされるじゃん
バカじゃねえの
413 :
405 :2009/09/20(日) 00:27:10 ID:GUlnV5OW
>>406 そのファイルを配置したら確かに動きましたが、SWFファイルだけで完結する方法はありませんか?
Flex+AS3じゃ無理ですかね・・・・
>>407 分けて書いても変わりませんでした。
ソースは、AS3解説サイトのを参考にしてますが、そちらのほうが簡潔でいいですね。
414 :
Now_loading...774KB :2009/09/20(日) 13:29:46 ID:DfIgsudI
>>314 クラス宣言の1個下の階層で宣言する変数・定数・関数には、普通publicとかprivateとかのアクセス修飾子をつける。
何もつけなければinternalってつけたのと同じになり、package内からしか参照できなくなる。
クラスAとBはpackage外なのでinternal変数であるa,bを参照できない。
var a:Number → public var a:Number
とかにすれば動くはず。privateでも動くかも
AとBは参照して無いと思うぞ
416 :
414 :2009/09/20(日) 13:54:56 ID:DfIgsudI
>>415 traceのせいかと思ってたけど本当だ。コメントアウトしてもエラーでた。
しかし上のほうにあるthisをつける解決方法とか、クラス
AとBをコメントアウトすればコンパイル通るとかは、うちのflashdevelopではできない。普通にエラー。
publicつければ出来るのだけは合ってるとおもう。
417 :
Now_loading...774KB :2009/09/20(日) 13:58:15 ID:kWT0xsdj
質問です。 as3でAIR1.1をつかってます。 AIRでコンパイルしたexeプログラムを実行して、さらに何か別のexeを起動したとき AIRで作ったファイルの上に他のexeのウィンドウに重なったると ウィンドウ同市が重なった部分が白くなり、描画してくれなくなります。 何かscriptで解決できる方法はあるんでしょうか? どなたか、ご教授いただけたらと思います。
>>416 trace内の"a"と"b"は変数じゃない。文字列だ
419 :
Now_loading...774KB :2009/09/20(日) 19:14:48 ID:ldMf+Jda
AS2 マウス座標をコントロールすることってできる? プレイヤーがマウスを動かしていないのに+1ずつマウス位置が上がっていくような物を作りたいです プレイヤーが動かしていた場合、プレイヤーの操作に+1となるような マウス位置のコントロールなんて無理か
>>419 通常のマウスカーソルを消して、MCで作ったカーソルを使えば出来るんじゃないかな
421 :
Now_loading...774KB :2009/09/20(日) 22:17:43 ID:ldMf+Jda
>>421 計測した時間の合計を変数に保存しておいて、ボタンを押すたびに0から時間を計測して
この2つを合わせた時間を表示すればいいんじゃないか?
ファイル見てないから適当だけど
>>419 類似の質問ちょくちょく見かけるんだが
そんなクソインターフェイス何に使うんだ?
たちの悪いジョークソフトしか思い浮かばない
>>423 自分もそれは思う。
普通はマウスカーソルが勝手に動くなんて、嫌すぎる挙動だから
仲間内だけのネタコンテンツとかかなー?
ゲームじゃね?
Q.○○を教えてください A.そんな事よりここが駄目だ このパターン多すぎ。黙って質問に答えてろよ
答えてもリアクションがピンボケで話も続かない
サポートじゃないんだし、雑談や感想、逆質が混じってもしょうがないでしょ。
429 :
Now_loading...774KB :2009/09/21(月) 17:57:33 ID:ne3ZqcBj
環境はXPでAS3です 矩形を作ってそれの幅を動的に縮め様と思うんですが 例えば sampleRectangle.width -= 10; みないな感じで縮め様とすると X座標は変更していないのに左側へずれてしまいます 作りたいのは格闘ゲームのHPバーの様な物なんですが 横の座標を止めて幅を変更する事は出来るんでしょうか?
>>431 widthに値を入れるとそれに合わせてscaleXが変更される
scaleはデフォだと(0,0)を中心に伸縮するから、端を0,0にしてやると端の座標はずれなくなるよ
433 :
421 :2009/09/21(月) 22:16:50 ID:ne3ZqcBj
少し複雑な構造をしておりまして
>>422 ではできません。どのようなファイルになっているかと言いますと、timerというムービークリップ内に次のASを1フレーム目に記述しており
---------------------------
//グローバル変数の初期化
countTime = 0;
bActive = 1;
startTime = getTimer();
//タイマーストップ用メソッドの定義
function stopTimer() {
bActive = 0;
}
//タイマーの動作を行うメソッドの定義
function action () {
if (bActive) {
var nowTime = ((getTimer() - startTime)/1000);
countTime = nowTime;
}
}
//このタイマーの値を調べるときに使うメソッド
function value () {
return countTime;
}
434 :
421 :2009/09/21(月) 22:17:46 ID:ne3ZqcBj
続き --------------------------- 2フレーム目には this.action(); //その他の記述は関係なしです。 --------------------------- 3フレーム目に this.gotoAndPlay(_currentFrame - 1); --------------------------- このtimerというムービークリップをタイムライン上で 一度停止したり、再開したりすることはできないでしょうか? timer.stop(); timer.play(); を試すと、ストップしている間の時間まで数えられてしまうのですが…
flash CS3 で作成したswfファイル(sub.swf)を main.asからLoaderクラスを使って読み込み Loader.contentLoaderInfo.applicationDomain.getDefinition("className") で、ロードしたSWF内で定義したリンケージクラスを引っ張ってきました。 その上でそのクラスからインスタンスを生成したのですが 生成されたクラス(MovieClip)の挙動がおかしいです。 具体的には、sub.swfは3つのシーンから構成されており 各シーンの末尾フレームにはgotoAndPlay(1)を埋め込み シーン内でループするようにしているのですが そのフレームアクションが全て無視されます。 探ってみるとコンストラクタまでは動いてるようなので addFrameScriptがちゃんと動いてない気もするのですがよくわかりません。 どなたか原因などわかりますか? ちなみに環境はAS3.0 flash9です。
436 :
Now_loading...774KB :2009/09/21(月) 22:42:16 ID:QYLdN3qX
AS3に挑戦中なんですが、main.swfにコンテンツごとの外部SWFを読込んで表示させようと思ってます。 ところが読込んだSWFが必ず最前面に出てしまいます。 本当は最背面に置きたいのですが、イベントリスナーでロード完了後にsetChildIndexで順番を変えてやっても必ず最前面に・・・。 ローダーは別のクラスで空のムービークリップにローダーをaddChildして、main.swfでさらにインスタンスにしたクラスをaddChildしてる次第です。 この説明の仕方もあってるのかイマイチよくわかりませんが・・・。 原因が分かる方是非教えて下さい。
437 :
Now_loading...774KB :2009/09/21(月) 23:04:35 ID:4CNWr0Ol
CS4(AS3.0, WinXP-Pro)
BitmapDataをPNGEncoder(もしくはJPGEncoder
ttp://code.google.com/p/as3corelib/ )で
PNG(JPG)化する作業で質問です。
MC(canvas)内にグラフを描き、これをPNGとJPG化することはできたのですが、
背景を透明にする方法が分かりません。コードの抜粋は以下の通りです。
var bmpData:BitmapData=new BitmapData(canvas.width,canvas.height,false,0xFFFFFF);//背景は白
bmpData.draw(canvas);
var byteArray:ByteArray;
byteArray=PNGEncoder.encode(bmpData);
//
var fsw:FileStream = new FileStream();//Streamを開いて画像を生成
fsw.writeBytes(byteArray, 0, byteArray.length);
fsw.close();
このままだと背景が白になり、0xFFFFFFを消しても背景は白のままでした。
背景を透明にすること方法はありますか?
>>434 なるべく構造変えないような形で考えてみたが、これでちゃんと動くかは確認してない
1.グローバル変数にstopTimeを追加
2.stopTimer()を次のように変更
function stopTimer() {
bActive = 0;
stopTime = getTimer();
}
3.action()を次のように変更
function action() {
if (bActive) {
if(stopTime > 0) {
startTime += getTimer() - stopTime;
stopTime = 0;
}
countTime = (getTimer() - startTime) / 1000);
}
}
>>435 MCをgetChildIndexして順番を把握し、これが1以上ならsetChildIndexで入れ替えるというのは?
>>437 BitmapDataの引数を確認するんだ
>>440 false → true でOKでした。
Thx
>>432 初期表示x座標を画面端に、という事でしょうか?
しかしデザインが制約されてしまうので無理なんです、意味を間違えてたらすいません
scaleXなんかも色々試しましたが解消できず
最終的にremoveChildで前の矩形を削除し
新しく幅を設定し直してaddChildで追加して解消しました
回答ありがとう御座いました
443 :
Now_loading...774KB :2009/09/22(火) 06:21:23 ID:L/dl7J61
現在Progression3を使用しています。 1ページ目→2ページ目→3ページ目→・・・→1ページ目 のように自動でループするページ遷移をさせたいのですがやり方がわかりません。 どなたかご教授お願いします。
>>443 聞く前にやれ
>>444 Sceneを配列に入れてTimerでまわすとか?
Progressionあんまりわからんスマン
ApplicationUpdaterUIをつかってairのアップデートをできるようにしたいのですが、エラーが起きてしまいます。 どなたか経験された方いらっしゃいますか? 【環境】 windowsXP/FlashCS4 10.0.2/AS3/air 1.5 【やったこと】 1)パブリッシュ設定で外部ライブラリーにswcにパスを通す。(fla,swcは同階層に置いてます) ./applicationupdater_ui.swc 2)ドキュメントクラスに下記を記述。 package { import flash.display.MovieClip; import air.update.ApplicationUpdaterUI; public class Main extends MovieClip { private var _appUpdater:ApplicationUpdaterUI; public function Main() { // } } } VerifyError: Error #1014: Class air.update::ApplicationUpdaterUI could not be found. at global$init() というエラーが出力されます、、、どなかたご教授お願い致します。
447 :
446 :2009/09/22(火) 23:53:41 ID:uwlkrMmI
うう、、、自己解決しました。 外部ライブラリーではなく、単にライブラリーにswcのパスを通したら逝けました。 お騒がせしました。
448 :
Now_loading...774KB :2009/09/23(水) 20:34:53 ID:gAHtQ/4D
CS4(AS3.0),OS:WinXP-Pro 行列で要素を持つ2次元配列のソートで質問です。 配列data1がdata1[gyou][retu]の形であったとき、これを列毎にソートするには どうしたら良いでしょうか? 行毎のソートは、data1[gyou]sort(Array.DESCENDING | Array.NUMERIC); で済むと 思いますが、列の場合が分かりません。 data1の行と列を入れ替えて上の形を適用することも考えましたが、これは最後の 手段にしたいです。
adobe flash cs3 でASやってるんですが、 ASエディタのインタフェースが使いづらいし、サイズが大きくなると読み込みも遅いです。 最新のadobe flashではエディタとか改善されていますか?
>>448 sortにカスタムソート関数を渡せるから自分で作るんだ
>>449 相変わらず糞だからFlashDevelop使うといいよ
>>448 要するに、複数ある配列の同じindexにある要素のソートなんだから、
ソートしたい列の要素を各配列から集めて新しい配列を作る→ソートする
→結果を各配列に戻す、って流れでどうだろう
二次元配列と列の値渡してソートするような関数作ればわざわざ配列作る必要もないだろうけど
452 :
Now_loading...774KB :2009/09/25(金) 00:31:20 ID:De8cjTBc
AS3 lineToとかmoveToで描画していくとCPU使用率が半端なくあがるのですが抑える方法はないですか? clear()してもまたlineToとかしていくと前回より少しずつCPU使用率が上がっていきます。
>>452 AS3ならGraphicクラスにdrawPathっていう一気に描かせる関数があって
lineToとかを繰り返すより効率がいいらしいよ
CPU使用率がどうかは分からんけど……
454 :
Now_loading...774KB :2009/09/25(金) 23:48:15 ID:PA/B9DAH
AS2.0,Player6 です(CS4,WinXP) MovieClipLoaderや、このonLoadInitを使わずにMCに読み込んだ画像(JPG)の 縦横サイズを取得するにはどうしたら良いでしょうか? Player7なら上のものが使えて、過去に試したサンプルがあるのですが、Player6 という制限があり使えません。 よろしく願います。
455 :
454 :2009/09/26(土) 02:43:34 ID:cS+XK28W
(自己解決しました) 過去のASストックを見たら、Player6でも使えるものがありました(由来のHPは 閉鎖されています)。 this.createEmptyMovieClip("load_mc",1); load_mc.createEmptyMovieClip("jpg",1); this.load_mc.jpg.loadMovie("読み込むJPG"); this.load_mc.onEnterFrame = function() { if ( this.jpg._width != 0 ) {//ココから下を改造 this.jpg._width = this.jpg._height = 100; delete this.onEnterFrame; } } つまり2フレ目以降でwidth幅がゼロでないなら処理を行うもので、 リサイズも出来ました。
関数を複数のテキストフィールドに引き渡したいのですがうまくいきません。 2つとも関数は稼動してるようですがmy_txt2のほうにしか動きが反映されません。 これはなぜなのでしょうか? function my_func(field,speed) { this.onEnterFrame = function() { field.hscroll += speed; if (field.hscroll>=field.maxhscroll || field.hscroll<=0) { speed *= -1; } }; } my_func(my_txt,100); my_func(my_txt2,50); ちなみにAS2のPlayer7です。
>>456 onEnterFrameに関数代入してるんだから、最後に入れた関数しか動かんのは当然だろう
最初のmy_funcで代入した関数は存在しないんだから
>>457 ちょっと訂正
onEnterFrameに→1つのonEnterFrameに
459 :
456 :2009/09/26(土) 15:27:03 ID:sbXa3xl+
この場合のthisはrootでそれにふたつのonEnterFrameを割り当ててたから駄目だったんですね。 MCを振り分けてやってみたらうまくいきました。 ありがとうございました。
460 :
312 :2009/09/27(日) 14:52:08 ID:HT34EspN
改めて探したら「はじめに」の端にもあった orz
素朴な質問ですが 以下のように作成した配列を持つ変数に、別の配列を代入する場合 代入する前に ary = null と、してもしなくても同じことでしょうか? var ary1:Array = []; //ary1 = null; ary1 = ary2
>>462 新しい配列代入すれば前の配列は参照が切れて、他から参照されてなければ自動で消されるはずだから
わざわざnull入れなくても大丈夫だと思う
464 :
462 :2009/09/27(日) 22:09:22 ID:l68sj9bt
>>463 ありがとうございます
すっきりしました!
465 :
Now_loading...774KB :2009/09/28(月) 00:04:57 ID:KAMRizvx
as3のDisplayObjectで質問です。 DisplayObjectContainer(Sprite)にDisplayObject(Loader)を子として追加したんですが、子の表示順序を 親よりも前、つまり奥にするにはどうすればいいでしょうか?addChildAtとかは、同じ階層にあるものでしか意味無いですよね? 宜しくお願いします。
>>466 親子関係にしなければいい
例えば新しいSpriteを作ってそこに2つともaddChildするとか
469 :
465 :2009/09/29(火) 00:45:08 ID:SqA/ujS0
>>467 cgi側の処理で経過時間の変数を追加する場合に、どのようなスクリプトを追加すればよろしいでしょうか?
##### レシーブ処理 #####
sub receive{
my $query = CGI->new;
my $returnPath = $query->param('email');
my $from = _convertMimeB(_convertJis($query->param('name')));
$from .= "<$returnPath>";
my $to = $query->param('to');
my $subject = _convertMimeB(_convertJis($query->param('subject')));
my $body = _convertJis($query->param('body'));
### メール作成
my $mail = "";
$mail .= "Return-Path: <$returnPath>\n";
$mail .= "To: $to\n";
$mail .= "From: $from\n";
$mail .= "Subject: $subject\n";
$mail .= "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
$mail .= "Content-Transfer-Encoding: 7bit\n";
$mail .= "MIME-Version: 1.0\n";
$mail .= "\n";
$body =~ s/(^|\n)\.(\n|$)/$1. $2/g;
$body =~ s/(^|\n)\.(\n|$)/$1. $2/g;
$mail .= $body;
>>468 ありがとうございます。やはりそうなりますか・・・ということは表示順は必ず親が先になるのでしょうか?
471 :
Now_loading...774KB :2009/09/29(火) 00:47:54 ID:SqA/ujS0
あとFLASHのASの記述も、何を追加すればよいのか教えてく…れ…たの…む……(フリーザ風) //送信用のLoadVars var serveData:LoadVars = new LoadVars(); //受信用のLoadVars var receiveData:LoadVars = new LoadVars(); receiveData.onLoad = function() { gotoAndStop(12); }; sButton.onRelease = function(){ serveData.to = TO; serveData.name = name.text; serveData.email = email.text; serveData.subject = subject.text; serveData.body = body.text; serveData.sendAndLoad("sendmail_flash.cgi", receiveData); gotoAndStop(11); };
472 :
Now_loading...774KB :2009/09/29(火) 01:12:46 ID:37CdLmh/
なんで普通に質問できないの
ASってエクセルのデータとかcsvのデータ読み込むとか操作することできる?
AS2は知らんがAS3ならできるよ
できるかできないかなんて聞いてないよ。 どうしたらできるの?
as3xlsみたいなライブラリを使うか自分で書けばできるよ
477 :
471 :2009/09/29(火) 02:47:51 ID:SqA/ujS0
>>472 すいません、教えてくださいm(_ _)m
478 :
Now_loading...774KB :2009/09/29(火) 17:02:16 ID:E7GiapOc
質問させてください。 FLVプレイヤーを作りたいのですが、 再生ボタンを押すまではデフォルトで静止画を表示しておきたいと思っています。 別途画像を読み込むのではなく、例えば再生開始まではそのFLVファイルの任意の秒数の静止画を表示しておくというようなことはできますでしょうか? よろしくお願いします。
>>477 sendAndLoad (LoadVars.sendAndLoad メソッド)は
オブジェクト内の変数を、指定された URL に送信するものだから
LoadVarsオブジェクトに好きな変数を追加すればいんじゃん
serveData.score = 255;
としたらscore=255が送信されるから
CGI側では
my $myscore = $query->param('score');
とでもしたらいいのかな
サンプルのだと実行されるたびにメールが送られてくると思うんだけど
それがしたいことなの?
スコアを保存したいなら
FLASH→perl→text で保存して
FLASH→txtで読み込めばいいんじゃない
480 :
477 :2009/09/29(火) 20:47:36 ID:SqA/ujS0
>>479 それがしたいことであります!
帰ったらやってみます。ありがとう。
481 :
Now_loading...774KB :2009/09/29(火) 21:59:30 ID:SqA/ujS0
>>479 やってみたのですが、変数のデータが送信されません。timerというムービークリップ内にcountTimeという変数があり、
そちらを送りたいのですが…。timer内には3フレームあり、それぞれ次のスクリプトを記述しております。
■1フレーム目
//グローバル変数の初期化
countTime = 0;
bActive = 1;
startTime = getTimer();
//タイマーストップ用メソッドの定義
function stopTimer() {
bActive = 0;
}
//タイマーの動作を行うメソッドの定義
function action () {
if (bActive) {
var nowTime = ((getTimer() - startTime)/1000);
countTime = nowTime;
}
}
//このタイマーの値を調べるときに使うメソッド
function value () {
return countTime;
}
482 :
477 :2009/09/29(火) 22:00:29 ID:SqA/ujS0
■2フレーム目 this.action(); if (countTime >= 20) { _root.gotoAndStop("gameover"); } ■3フレーム目 this.gotoAndPlay(_currentFrame - 1); countTimeを送信したいのですが、FLASHとCGIファイルでそれぞれどのように記述すれば宜しいでしょうか? 一応、次のような感じなのかなとは思い、やってみたのですがダメでした…。 FLASH側 serveData.score = timer.countTime; CGI側 my $myscore = $query->param('score');
483 :
477 :2009/09/29(火) 23:17:35 ID:SqA/ujS0
2、3フレーム目はほとんど関係ないです。 20秒経過したらゲームオーバーにしてるだけです。
つかあんたFlash使わないでそのCGI直接叩いて必要なパラメータ送れるの? その仕組みわかってなきゃ何やっても無駄
CGIの書き方わからないとかだったら問題外 ヨソでお勉強してきて頂戴
Flashで何しようが別にFlashならではの特殊な通信してるわけじゃない POSTだろうがGETだろうがソケット通信だろうが、既存のその技術をFlashから使ってるだけ まずはそこを知ってなきゃ話にならない
>>483 1フレーム目もいらないからとりあえず何ができていないのか調べるべき
1.サンプル通りに書いてアドレスや名前をメールで取得することができた
2.serveData.score=1(適当な定数)として加えてみてメールで取得することができた
3.CGIに送る直前にtimer.countTimeをtraceしてみてきちんと期待される値がとれている
たぶん2がNOだと思うけどその場合
2-1.scoreが送信できていない
2-2.scoreが送信できているけど正しく処理できていない
をチェックしてみ
1と3はさすがにできてるよね
488 :
477 :2009/09/30(水) 09:02:06 ID:6SPGknWw
>>487 2ができてませんでした。
メールを受信したときに題名、名前、アドレス、内容とあって
このscoreが正しく送信された場合、
メールのどの欄に送られてくるものなのでしょうか?内容?
2-2の可能性も高いということですよね?
TextAreaへのhtmlTextでfirefoxの検索ヒットした時みたいに ある範囲の背景を赤にしたいんですがflash.text.StyleSheetに背景設定が見当たらない これは無理ってことでしょうか?
>>489 背景色はできなたっかんじゃないかな
自前でTextField並べてTextFieldのbackgroundColor設定するとかになっちゃうかな
491 :
Now_loading...774KB :2009/09/30(水) 15:45:40 ID:UfMVZ9M5
mcインスタンスに読み込む画像をメモ帳で指定したいのですが 何処かいい解説サイトはありますか? 例:txtファイルに img01=1.jpg と書いておけば _root.base01に 1.jpgを読み込んでくれるといった事をしたいんです。 外部txtからテキストやhtml,ダイレクトに外部画像読み込みは過去にやった事があるのですが それらの複合で、更にずっとASから離れてた事もあって四苦八苦中です。 少々漠然とした質問で申し訳ありませんが宜しくお願いします。
492 :
491 :2009/09/30(水) 16:07:37 ID:UfMVZ9M5
補足。 少し頭を抱えて閃いたので今やってみました。 this.base.loadMovie("gazou1") System.useCodepage = true; this.loadVariables("img.txt",this.gazou1txt); gazou1=gazou1txt; 一度ダイナミックテキストにメモ帳から変数指定 その変数をgazou1に受け渡して画像読み込み メモ帳には gazou1txt=01.jpg 同じ階層に01.jpgを置いてあります インスタンス名 baseにこれだと読み込まれません。 何処か間違ってる箇所はありますか? 現在Flash MXでやってます
493 :
Now_loading...774KB :2009/09/30(水) 16:50:59 ID:cysWOwC3
internal 修飾子を使ったクラスのメソッドに public と internal を使った場合 それぞれどう違うのかが分かりません。 どなたか解説をお願いしますm(____)m
494 :
491 :2009/09/30(水) 16:53:16 ID:UfMVZ9M5
連レスすみません。 AS System.useCodepage = true; loadVariablesNum("img.txt", 0); this.img01.loadMovie(image01+".jpg"); メモ帳 image01=01 インスタンス名 img01に 01.jpgが読み込まれません。 試しにダイナミックテキストを置いて変数調べて見ましたが01で読み込まれてました。 プレビューを見るとError opening URL undefined.jpgと出て変数のやり取りが出来てない模様です
495 :
Now_loading...774KB :2009/09/30(水) 16:57:43 ID:kd8olnZD
初心者です。 マウス座標でスクロールするようにしたいんですが何が駄目なのか全く動きません‥… インスンス名はmapでやってるし‥かれこれ5時間奮闘です‥… 環境 CS4のAS2 です! onClipEvent (load) { MapWidth = 308.10; // マップの横幅 MapHeight = 1112.80; // マップの縦幅 MapSpeed = 5; // マップの移動速度 FlashWidth = 1024; // Flashの縦幅 FlashHeight = 710; // Flashの横幅 } onClipEvent (enterFrame) { // x方向移動量 _root.map._x += ((FlashWidth - _root._xmouse) / FlashWidth * 2 - 1) * MapSpeed; // y方向移動量 _root.map._y += ((FlashHeight - _root._ymouse) / FlashHeight * 2 - 1) * MapSpeed; // リミッタ if( _root.map._x > 0) _root.map._x = 0; if( _root.map._y > 0) _root.map._y = 0; if( _root.map._x < -(MapWidth - FlashWidth )) _root.map._x = -(MapWidth - FlashWidth); if( _root.map._y < -(MapHeight - FlashHeight )) _root.map._y = -(MapHeight - FlashHeight); } 回答お願いします!
回答じゃないけど 今初心者なら2.0じゃなくて3.0覚えたほうがいいと思うんだけど。
>>494 まず、読み込み開始した直後には、データ(img.txt)は当然読み込まれていない。
したがって、loadVariablesNum()の直後にそのデータ内容を参照しても無理。
AS2.0ならLoadVarsを使い、リスナーイベント内でimg.txtの内容を受け取る。
それが出来たら、今度はその値をもとに、MovieClipLoaderを使う。
498 :
489 :2009/09/30(水) 17:34:04 ID:2APbkzpp
>>490 回答ありがとうございます
そこまでするほどの件でもないので文字の色を変えるぐらいにします
499 :
sage :2009/09/30(水) 18:13:04 ID:WPNoq1KL
[1フレーム目] System.useCodepage = true; this.loadVariables("CP1.txt"); ll=0; this.play(); [2フレーム目] ll +=1;// Line ="L"+ll;//台詞表示 this.stop(); (キー操作で次のフレームへ) [3フレーム目] prevFrame(); //前のフレームに戻る [CP1.txt内容] &L1=セリフ1& &L2=セリフ2& ------------------------------- 以上のようなスクリプトで、ページをめくるたびに違うセリフが表示されるように したいのですが、実際には「L1」「L2」と表示されてしまいます。 正しく表示されるにはどうしたらいいかよろしければ回答お願いします。
>>499 文字列で変数名を指定するなら配列アクセス演算子。
できればテキストフィールドを変数として使うのはやめたほうがいいです。
さらにこの件とは関係ないけど、理由がないなら、loadVariablesじゃなくて、
LoadVars使ったほうがいいと思います。
確実な読み込み完了処理ができる。フレーム遷移も不要になる。
今のスクリプトだと、もしも2フレーム目に移動した時点でテキストの読み込みが完了して
なかったらうまく動作せず、バグの原因になりうるよ。
501 :
Now_loading...774KB :2009/09/30(水) 20:33:02 ID:2MGmXQ2M
addEventListener(Event.ENTER_FRAME, xFollowMouse); function xFollowMouse(eventObject:Event):void { x += mouseX; y += mouseY; } ----------------------------------------------------------------------------- addEventListener(Event.ENTER_FRAME, xFollowMouse); function xFollowMouse(eventObject:Event):void { x = parent.mouseX; y = parent.mouseY; } 誰かこの仕組みの違いを教えて下さい 頭がいたくなってきた・・・orz
FSCommand2("StartVibrate",100,100,3) この動作をループさせる方法はないでしょうか?
503 :
499 :2009/09/30(水) 21:22:16 ID:WPNoq1KL
>>500 ありがとうございます。
いろいろと気をつけないといけないことがあるんですね・・・
>>502 携帯は専用スレ有り
100ミリ秒バイブ100ミリ秒やすみを三回繰り返してるんだから
settimerかなんかで1200ミリ秒ごとに実行させたら?
>>495 リミッタの条件式は本当にあってるの?
mapのxy座標は度の範囲を動いてほしいの?
>>499 500の補足をすると
Line ="L"+ll;//台詞表示
が間違ってる。llが1だったら"L"+llは"L1"
2だったら"L"+llは"L2"という文字列の値になっちゃう。
から配列アクセス。
>>488 2-2だと思う。あなたがやった
FLASH側
serveData.score = timer.countTime;
はscoreの値をCGIに送るトロッコに乗せたこと
CGI側
my $myscore = $query->param('score');
は受け取ったトロッコからscoreをおろしたことだから
この二行があってるかはわかんないけど
少なくともそのあとの処理をしなきゃ
mailの送信はやったことないから申し訳ないがわかんない
たぶん$bodyになんとかして加えるんだと思うけど
とりあえずレシーブ処理の最終行の
my $body = _convertJis($query->param('body')); を
my $body = _convertJis($query->param('score')); に変えてみたら
メール本文にflashから送った本文の代わりにscoreが入ると思うから
それで本文が設定したスコアの値になってれば
送信はできてるってことだから
なんとか本文と加える方法を考える
>>501 xとyがなにを指してるか分かんないけどssってインスタンスがあって
ss.xとss.yってことにする
上はすごい勢いでどっかとんでくんじゃない。
フレームごとにマウスの座標(ターゲットによるけど基本は正)の値だけ移動するんだから。
下は完全にマウスのトレース。フレームごとにマウスの座標にssの中心座標が移動する
もしマウスにゆっくり追尾させたいんなら
addEventListener(Event.ENTER_FRAME, xFollowMouse);
function xFollowMouse(eventObject:Event):void {
ss.x += (mouseX-ss.x)/5;
ss.y += (mouseY-ss.y)/5;
}
こんなん。
フレームごとにssの座標とマウスの座標の差をとってその5分の1だけ近づける
507 :
501 :2009/09/30(水) 22:51:18 ID:2MGmXQ2M
>>506 さん
応用まで教えてくれてありがとうございます
上と下は同じ挙動をするスクリプトなんですが
マウスから見たインスタンスの座標と、インスタンスから見たマウスの座標
ということにして 上のスクリプトはマウスの座標がインスタンスから見てマイナスになったら
挙動がおかしくなるということで解釈しようと思います
本当にありがとう
今、教えてくれたスクリプトにディフェンスしてる人のインスタンスくっつけて息抜きしてます
>>507 見当違いだったか。失礼
_parent気になったけどスルーしちゃった
上下のスクリプトのみをメインフレームに書いたら
同じ挙動するってこと??
509 :
501 :2009/09/30(水) 23:09:30 ID:2MGmXQ2M
同じ挙動です だけど上のスクリプトを書いてる途中に確認として何度かプレビューしたんですけど 挙動がおかしくなることが何度かあったので・・・(まだ良く分かってない) まだ初めて2日目なのでもう少し自分で調べてから質問してみます
>>509 インスタンスも何もおかないの?
片方書いただけだと
当然のように何も表示されないんだけど
511 :
501 :2009/09/30(水) 23:16:51 ID:2MGmXQ2M
すみません インスタンスはあります 申し訳ありません 言ってくれた様にマウスに追従するスクリプトを作ろうとしています
512 :
501 :2009/09/30(水) 23:31:52 ID:2MGmXQ2M
addEventListener(Event.ENTER_FRAME, xFollowMouse); function xFollowMouse(eventObject:Event):void { ss.x = mouseX; } 最初にこのスクリトで試してみたら挙動がおかしく、 helpをみたのですがmouseXはインスタンスの継承したプロパティなのに 1つしかないマウスポインタの座標
513 :
501 :2009/09/30(水) 23:32:58 ID:2MGmXQ2M
間違えて打ち込んでしまた もういいや 勉強してくる
>>511 >>501 の
x += mouseX;と
x = parent.mouseX;
が同じような挙動するとはやっぱり思えないな。+=でいいの?
こんなのもある。ぼよんぼよん
var vx:Number=0,vy:Number=0;
addEventListener(Event.ENTER_FRAME, xFollowMouse);
function xFollowMouse(eventObject:Event):void {
vx= vx*0.6+(mouseX-ss.x)/1;
ss.x +=vx;
vy= vy*0.6+(mouseY-ss.y)/1;
ss.y +=vy;
}
515 :
501 :2009/10/01(木) 02:39:37 ID:+eU3sGwi
>>514 確かに同じ挙動ではないのですが
インスタンスから見たマウスポインタの座標で追従するスクリプト と
マウスポインタのからみたインスタンスの座標で追従するスクリプト の違いで
触った感じだと同じ挙動に感じます
この解釈で覚えてみて他にも試してみようと思います
ぼよんぼよんのスクリプトこれめっちゃ楽しいですね!!
516 :
478 :2009/10/01(木) 08:57:21 ID:4ZwKdvSo
すみません、
>>478 について
何か方法がありましたら教えてください。
function enterFrame_handler(event:Event):void { var num:int=0; num++; trace(num); } このプログラムだと毎回変数numが0に初期化されてしまいます どうすれば最初の一回だけ初期化するような処理をすることが出来るのでしょうか 回答宜しくお願いします。
>>517 enterFrame_handler の外で変数 num を宣言すればいい。
メンテしにくくなるけど、他の処理で enterFrame_handler や num を使わないと確定しているなら、
var num:int = 0;
addEventListener(Event.ENTER_FRAME,
function(event:Event):void {
num++;
trace(num);
}
);
のように匿名関数の直前に num を宣言して使っちゃうとか。
良スレ
520 :
Now_loading...774KB :2009/10/02(金) 10:41:07 ID:KWFfMX4E
base.addChild(class1); class1.addChild(class2); class2.addChild(class3); base.addChild(class4); こういった状態の時に、base上で宣言した変数の値を全てのclass上で参照する方法はあるのでしょうか? Actionscript3.0です。
parent parent.parent parent.parent.parent
>>521 ありがとうございました。
やっぱりそう辿っていく方法しかないんですかね。
それぞれのクラスのENTER_FRAME上で、何度もアクセスする数値なので
クラスまたぎのアクセスは重くなる?気がして悩んでいました。
それぞれのクラスで個別に同じ変数を宣言して使用しようと思います。
523 :
Now_loading...774KB :2009/10/02(金) 16:14:24 ID:HIT9dyVa
質問です。 flash CS4でAIRアプリ製作しています。 AIR1.5でパブリッシュする方法がわかりません。 flash CS4にはAIR1.1がデフォルトで パブリッシュできるようになっているのですが… AIR1.5は一応ダウンロードしてインストールしているんですが パブリッシュ設定のplayer設定にはAIR1.5は選択肢として表示されていません。 AIR1.5パブリッシュするには特別な設定がいるのでしょうか?
>>523 今FlashCS4見てみたけど、普通にAIR1.5あったよ
Flashのアップデート確認してみるといいんじゃない?
>>522 上からもある
root.base
baseの位置にもよるが
AS3でタイムラインにムービーを書くのとスクリプトで制御するのはどちらの方が軽い処理になるのでしょうか
>>527 どういう処理をしたいのかによるが、スクリプトの方が殆どの場合軽い。
自由度なら圧倒的にスクリプトが優勢。
AS3で、alpha等の少数プロパティを与える時 0.338947348973497・・・ みたいな少数以下のケタがとても長いのを与えても、特に問題は無いのでしょうか? Math.random()を使った場合等、上記のような少数以下ケタが長い数値排出されますが これをこのまま与えるより、小数点以下2ケタになるよう計算したのを与えた方が 処理が早くなる等の効果はあるのでしょうか?
ベンチ取ったこともバイナリ見たわけでもないけど誤差が出るだけでは? 基本的に浮動小数点処理だと思うけど。
>>530 どうも
試しにムービークリップに十数桁の少数を入れてtraceしてみたら
7、8桁程度で切られるみたいですね
alphaの誤差は0.00〜1.00間と思ってましたが、結構細かい誤差が発生するという事でしょうか
やっぱり指定する際に下2ケタに変換した方が無難なようですね
532 :
Now_loading...774KB :2009/10/05(月) 05:11:32 ID:mv1rcnAD
初心でです okwebに投稿されてたスクリプトなんですが、 removeEventListenerが呼び出されてませんよという回答で解決していました しかしどこがおかしくて呼び出されてないのか分からないため どなたか教えてもらってもよろしいでしょうか?お願いします。 var c:int; var nDeceleration:Number = 0.1; ball.addEventListener (MouseEvent.MOUSE_OVER, r_over); function r_over(event:MouseEvent):void { c=300; ball.addEventListener(Event.ENTER_FRAME, ballsize); function ballsize(event:Event):void { if(ball.width==c){ ball.removeEventListener(Event.ENTER_FRAME,ballsize); } else{ ball.width +=(c - ball.width) *nDeceleration; ball.height +=(c - ball.height) *nDeceleration; } } } 続く
533 :
Now_loading...774KB :2009/10/05(月) 05:13:34 ID:mv1rcnAD
ball.addEventListener (MouseEvent.MOUSE_OUT, r_out); function r_out(event:MouseEvent):void { c=150; ball.addEventListener(Event.ENTER_FRAME, ballsize); function ballsize(event:Event):void { if(ball.width==c){ ball.removeEventListener(Event.ENTER_FRAME,ballsize); } else{ ball.width +=(c - ball.width) *nDeceleration; ball.height +=(c - ball.height) *nDeceleration; } } }
534 :
Now_loading...774KB :2009/10/05(月) 05:19:29 ID:mv1rcnAD
すみません AS3で、マウスがball_mcに乗ると拡大して ball_mcから降りると縮小するスクリプトなんですが、 繰り返しムービークリップにマウスに合わせてていくと 、縮小するまでの時間と拡大するまでの時間が比例的に早くなっていきます どうかよろしくお願いします。
>>532 イベント重ねて登録しちゃってんでしょ。removeする条件見直すか、
hasEventListenerで登録してあるイベント調べて登録しなおす処理にかえりゃいいんじゃない?
>>534 if(ball.width==c){ の部分
ball.width値はcに近づくけどぴったりcにならないからremoveEventListenerが実行されていない。
AS3です。SpriteにBlurFilter/ColorMatrixFilterで描画された残像を あるタイミングで全部きれいに消したい場合はどう記述すればいいですか
538 :
Now_loading...774KB :2009/10/06(火) 22:54:55 ID:hwhgTkXR
サムネイルサイズの画像をクリックするとフェードが掛かって、クリックした画像が 次々に切り替わるようなギャラリーはどうしたら作れますか? アルファ0%のビットマップを書いたマスク用ムービークリップを、画像読み込み用の空のムービークリップ上に乗せて マスク用ムービークリップに、マウスクリックイベントで外部画像を読み込む処理を書くみたいな感じで やるしかないのでしょうか?
いかにも作ってます体でめちゃくちゃな事を書くやつたまに居るけど何なの?w
>>538 何かテストで作ったらいいじゃん。
それで問題に当たったらそれを元に聞けばいいし。
541 :
Now_loading...774KB :2009/10/07(水) 03:31:32 ID:DtwhXxAw
>>524 解決できました。
Flash用のアップデートファイルが必要だったんですね。
ご指摘ありがとうございました。
AS3でタイマーイベントに引数を渡す方法はないでしょうか?
>>542 「AS3 クロージャ」でググると吉かもしれない
544 :
Now_loading...774KB :2009/10/07(水) 19:29:59 ID:RhdmJwq9
AS2.0,CS4,WinXPです。 ラジオボタンのラベル色(文字色)の変更(デフォルト黒→白)が出来ません。 記述は、ラジオボタンMCのonClipEvent (load) で this.setStyle("fontSize",16);// これはOK this.setStyle("Color",0xFFFFFF);// これは無効? と書いています。 フォントサイズは調整出来たのですが、色が変化しません。 どうしたら良いでしょうか?
545 :
Now_loading...774KB :2009/10/07(水) 19:35:06 ID:yiT5Xk4e
>>544 Color -> color じゃない?
var test=stage.addChild(new mc); とした場合test.x=100;をするとアタッチしたMCがX座標100の位置に来ると思うのですが 変数testを使わずに同じ処理を行うことは出来るでしょうか
>>547 初期位置を与えて初期化はできないんじゃないかな
専用の関数でも作って使いまわせば?
function createNewDO(dispObj:DisplayObject,x:Number=0, y:Number=0):DisplayObject{
dispObj.x=x;
dispObj.y=y;
return dispObj;
}
で、
addChild(createNewDO(new MovieClip(), 100));
みたいな感じ
ACTIONSCRIPT3で配列が存在するか確かめる方法はあるでしょうか IFで判定しようとしても配列にアクセスすると処理が中断されエラーが出てしまいます
>>549 配列の変数がnullか否かをまず見て、nullじゃなきゃlengthを気にしながら処理って感じかな?
>>550 解答ありがとうございます。
nullかどうかをIF文で調べるようにしたのですが
変数が存在しているかを先に見に行っているようで存在しなかった場合はエラーが出力されプログラム自体がスキップされてしまうようです…
>>551 エラーはどんなエラーなの?どんなメッセージが出力される?
553 :
Now_loading...774KB :2009/10/08(木) 12:51:38 ID:LAkCAuRm
>>552 条件は未定義であり、プロパティがありません。
と表示されます
>>553 なら先に変数を宣言しとけば済む話じゃないの?
何かダイナミックなクラスに後付けでArray型のプロパティ追加してるなら、配列アクセス演算子使えばいいんじゃない?
var o:Object ={};
trace(o["hoge"]==null);//true
o.hoge = new Array();
trace(o["hoge"]==null);//false
555 :
Now_loading...774KB :2009/10/08(木) 13:50:04 ID:53Ur5kxA
AIRでWEBとの通信を行いたいのですが、 URLLoaderのCOMPLETEがSSL(HTTPS)上だと発生しません。 どたなか解決策を教えてください! コードはadobeに記載されているサンプルコードそのままです。 var variables = new air.URLVariables("name=Franklin"); var request = new air.URLRequest(); request.url = "htps://〜〜〜/"; //←アクセス先がhttpsだと発生しない request.method = air.URLRequestMethod.POST; request.data = variables; var loader = new air.URLLoader(); loader.dataFormat = air.URLLoaderDataFormat.VARIABLES; loader.addEventListener(air.Event.COMPLETE, completeHandler); try { loader.load(request); } catch (error) { air.trace("Unable to load URL"); } function completeHandler(event) { air.trace(event.target.data.welcomeMessage); }
>>554 ありがとうございます
色々やってみたところ出来ました
AS3です。
Flashの貼ってあるページを開くときに、URLからgetメソッドでクエリ(パラメータ)を
Flashに渡したいのですが、やり方がわかりません。
現在asファイルを別個にして以下のように書いています。
private var _paramObj:Object;
private var _str:String;
てな感じに定義して
_paramObj=LoaderInfo(loaderinfo).parameters;
_str=paramObj["id"];
で、下のようなURLのクエリを受け取りたいのです。(_strの中に"hoge")
http://xxx.com/flash?id=hoge よろしくお願いします。
558 :
PG :2009/10/08(木) 20:45:25 ID:PbDh84qm
質問させてください。 AS2で、String型の内容をEUC-JPの文字コードに置き換えることは出来ますでしょうか。 宜しくお願いいたします。
動いているEventListenerを全て表示させるような事は出来ないでしょうか? プログラムが長くなってしまい永遠に実行されているENTERFRAMEなどがないか確かめたいのですが・・・
>>557 var _str:String = loaderInfo.parameters['id']; // これ一行でOKなハズ
ド素人な質問ですいません。 環境はFlashDevelop3.0.4+DlexSDK3.4です。 Mainで プロパティ:p1を宣言 Class1のインスタンス:c1をaddChild Class1内のファンクションでMainのp1にアクセスします。 MainがMovieClipを継承していれば trace("Main:p1>>>"+MovieClip(parent).p1); でアクセスできるのですが、 MainがSpriteを継承している場合 trace("Main:p1>>>"+Sprite(parent).p1); とやると 「未定義である可能性が高いプロパティ p1 に静的型 flash.display:Sprite の参照を使用してアクセスしています。」 と、エラーがでます。 1.Spriteを継承したクラスではこのようなことはできないのでしょうか。 2.MainはSpriteを継承している例が多いのですがMovieClipを継承すると何か問題あるでしょうか。 わかりづらいかもしれませんがよろしくお願いいたします。
↑FlashDevelop3.0.4(AS3)+FlexSDK3.4です
sage
ミスった
>>561 多分MovieClipはdynamicクラスだでSpriteは違う、ってあたりが関係してんじゃないかな
どちらで作ってもいいけど、MovieClipだと再生関係の機能分無駄だから
Spriteで作るのが定石とか読んだ覚えがある
565 :
561 :2009/10/10(土) 22:04:09 ID:7Pzqw2DW
>>564 なるほど、確かにエラーにも静的型だからダメ的に書いてますね
とりあえずMainからステージ管理用のMovieClipを継承したクラスを
インスタンス化してそこから各部品を配置していくようにします
ありがとうございました
AS3でボタンを押してはなしたときに実行させるにはどうすればいいでしょうか? MOUSE_UP+MOUSE_DOWNのような感じです
567 :
566 :2009/10/11(日) 21:07:56 ID:KcOnugAD
すみませんMOUSE_CLICKがあったのですねお騒がせしました
CS3です。flvplaybackコンポーネントを使ってflvplayerのスキンを改造 したいと思っています。 flvplaybackコンポーネントに、シークバーがあるのですが、 再生経過を表す「▲」型のハンドルがあり、再生すると左から右へ移動 します。 これを「▲」のハンドルでなくプログレスバーの様に左から棒が進むような タイプに変更したいです。 いろいろ試してみたのですが、なかなか思うようにはいけません。 例えば「▲」を横棒の矩形に変え、シークバー自体にマスクをかけて みたりするのですが、そうすると別のコンポーネントである ボリュームバーのハンドラが消えてしまったり。とか。。 なにか良い方法がありますでしょうか?
flashって決められたファイル形式しかインポートできないんですか? 外部ファイルを読み込めるの知っていますが、 例えばテキストファイルやcsvファイルなどをインポートして、 swf内に含まれるようコンパイルすることはできるのでしょうか。
Stringにすれば?
flash8です ムービークリップでもボタンでもどちらでもいいのですが そのオブジェクトにマウスが重なるとドロップシャドウで下が白く光り 文字の色が白から黒になる 話したら元に戻る クリックしたら別ページへとぶ この動作はどこに何を書けばいいのでしょうか? import flash.filters.DropShadowFilter; var mc:MovieClip; var filtersArray3:Array = new Array(); var dropShadowFilter3:DropShadowFilter = new DropShadowFilter(0, 45, 0xFFFFFF, 0.8, 16, 16, 1, 1, false, false, false); filtersArray3.push(dropShadowFilter3); mc.filters = filtersArray3; これを_rootの1フレ目に書いてぼやーって光らせることはできたのですが マウスオン時にこの処理を加える方法や押してリンクすることができません。
572 :
Now_loading...774KB :2009/10/12(月) 22:46:57 ID:f7edP/bh
指定した範囲内のグラデーションをしたく思っています。(WinXP,CS4,AS3.0)
ここでの範囲とは線で囲まれた範囲で、下の図の左側にあるトンネルの断面
みたいな部分です。
http://gazo6.com/0up1/src/gazo63729.png これを図の右のように青→白のグラデーションにするため、パラメーターを指定して
beginGradientFill()したのですが出来ません。
グラフィックスオブジェクトは var grObj:Graphics=graphics; と指定しており、
単純な(ベタな)塗りは grObj.beginFill(0x00000FF, 0.3); と grObj.endFill(); で
図にあるようにOKです。
どうしたら良いでしょうか?
滅茶苦茶素人質問ですみませんが fl.*パッケージはどうやったら使えるようになるのでしょうか 環境はflexSDKとFlashDeveloperでやってます
>>573 それはFlash(オーサリングするほう)で使うパッケージだからFlexからは使えない。
もしFlash持ってたらFlexから使ったりしてた例をどっかのBlogで見たけど
記憶ではまともに使えなかったかと。
そもそもfl.*パッケージを使わないと実装できないケースなんてあるの??
>>573 fl.swcをダウンロードしてflexSDKフォルダのframeworkかどっかのswcファイルがあるとこに入れる
詳しくはググって
>>572 shapeだとこんな感じ
var box:Shape = new Shape();
var matrix:Matrix = new Matrix();
matrix.createGradientBox( 100, 100, Math.PI / 2, x, y);
box.graphics.beginGradientFill(GradientType.LINEAR, [0x0000ff, 0xffffff],[1, 1],[0, 255],matrix);
box.graphics.drawRect(0, 0, 100, 100);
box.graphics.endFill();
addChild(box);
577 :
572 :2009/10/13(火) 00:49:45 ID:7N3B6Q4c
>>576 この記述を線で囲まれた範囲に適用するにはどうすれば良いのでしょうか?
578 :
Now_loading...774KB :2009/10/13(火) 19:35:12 ID:jRADSJR3
WinXP-Pro,CS4でAS2.0です。 (メインタイムライン内のASです) var tf:TextFormat = new TextFormat(); tf.bold = true; tipsT_ins.setTextFormat(tf); tipsT_ins.text = "abc123"; このようにして、テキストフィールド:tipsT_insにフォーマットを 適用して太字にしようとしましたが変りません。 どこが悪いのでしょうか?
>>578 tipsT_ins.setNewTextFormat(tf);
addchildでMCを大量に配置するとすぐ重くなってしまいます 何か他の方法で画像(ベクターグラフィック)を大量に設置することは出来ないでしょうか?
静止画限定 var myBitmapData:BitmapData = new BitmapData(400, 300); myBitmapData.draw(mc); var bmp:Bitmap = new Bitmap(myBitmapData); addChild(bmp);
584 :
572 :2009/10/14(水) 01:06:47 ID:zbsAZzAt
585 :
478 :2009/10/14(水) 08:49:22 ID:n+LG0bqB
>>478 ですが、未だ解決できません。
どなたかご教授下さい。
>>582 ベクタの大量配置は、ベクタをラスタライズする演算が大量に発生するのでCPUに負荷がかかるよ。
大量のベクタを配置しないというのが、フラッシュクリエータのセオリーの一つでもある。
配置したベクタをステージに配置する前に、ビットマップデータとして変化する必要があるよ
587 :
Now_loading...774KB :2009/10/14(水) 13:19:29 ID:vNE5GjlX
XPSP3 CS3にてflashlite を製作しておりますが 抽選というのを製作できずに困っております。 1:math.randomを使い複数個の中から一つを取り出す、というのは 分かるのですが、例えば対象A,B,Cの中からAは50% はb20%はC30% というような「割合」で出す場合はどのようにすればいいのでしょうか? 対象を10個に増やせばこの場合はどうにかできると思うのですが %の桁が1桁での抽選の場合、対象は100個かよ・・と思うと どうにももう少しスマートな方法があるように思えてなりません・・ 2:if文にAもしくはCだった場合は処理を・・みたいな 記述というのはどのように記述すればいいのでしょうか? (A<=B)とかはわかるのですが、いまいちピンときません。。 どなたかご教授いただけますでしょうか・・
ご教示いただけますでしょうか
>>587 1:どうしても100回やるしかないと思うな。で、ABCを各50回,20回,30回と。
この場合、重複の検証も必要。
2:OR表記(教科書の「集合」のところ)
>>587 値が0〜0.49ならA、0.5〜0.79ならB、0.8〜0.99ならCとか
591 :
587 :2009/10/14(水) 15:01:56 ID:vNE5GjlX
>>589 >>590 どうも自分の考え方に自信がなく、こんな力技でやるものなのか?
と疑問だったのですが、正攻法と捉えることにします。
ありがとうございました。
592 :
Now_loading...774KB :2009/10/14(水) 17:03:13 ID:3hYdMUAb
スピードを遅くするやり方教えてください。アクションスクリプト2で
593 :
Now_loading...774KB :2009/10/14(水) 20:24:46 ID:7Fe1/9CT
こんなムービーボタンが複数 lbt_1.onPress = function(){ gotoAndStop("press"); FLVplybk.contentPath = list[1]; FLVplybk.play(); } lbt_1.onRollOver = function(){ gotoAndStop("over"); } lbt_1.onRollOut = function(){ gotoAndStop("normal"); }; こんなflvデータ、変数で同数 var n:Number = 0; var videos:Object = new Object(); list = new Array(); list[0] = "movie_test1.flv";
594 :
593 :2009/10/14(水) 20:27:01 ID:7Fe1/9CT
ボタンのほかに、連続とループ再生 //自動連続再生のスクリプト videos.complete = function(evt:Object):Void { n++; if (n < list.length) { FLVplybk.contentPath = list[n]; } else { n = 0; FLVplybk.contentPath = list[n]; } FLVplybk.play(); }; FLVplybk.addEventListener("complete", videos); FLVplybk.play(); これにボタンから、自動再生からとも再生中のflvファイルと 符合するボタンの色をonRollOverと同じにする機能を追加したいのです。 n値を拾ってgotoandstopにぶつけるようにしてみましたが、 どうもうまくいかないようです。 こちらの環境はOSX10.5、FLASH Pro CS3、ActionScriptは2.0で書いています。 よろしくお願いいたします。。
任意の範囲内にあるオブジェクトを取得するのにはどのようにすればいいでしょうか? よろしくお願いします。
esc+g+pみたいなescショートカットキーを、まとめて一覧表にしているところどこかないでししょうか。 アクションパネル右側のヘルプに表示されるというけど、このヘルプにどこに何のコマンドがあるのか探しにくく、 探している命令(主にmovieClip周りの関数)にescショートカットがあるのかないのか分からず困っています
できました。
>>576 さんの方法を使いました。
得られたポイントは下記の3点です。
・周囲の線を描く前に matrix.createGradientBox() で範囲を指定する
・beginFill() の代わりに beginGradientFill() を使う
・drawRect() の所で範囲の線(トンネル断面の輪郭)を書く
有難うございました。
XP CS3 環境で製作しています。 横スクロールアクションのような感じで背景がスクロールするモノを製作しているのですが 家、壁、電柱のようにそれぞれの物体がランダムに背景に配置されるように したいのです。 そのような場合、ランダムを用いた背景の選択はできるのですが それらを背景として繋げて配置する事ができません。 MC_A(電柱)→MC_B(家)→MC_C(壁)というのがランダムに 配置され続ける、というような感じです・・。 どなたかご教授いただけますでしょうか・・
1つ1つ生成したMovieClipにEnterFrameつければ出来ると思うよ でも一回ビットマップに落としてからスクロールさせた方が軽いし良さそうだけど
CS3のAS2.0です。 ダイナミックテキストの変数をhitokotoと設定後、 タイムラインの1フレーム目にhitokoto="あああ";と書いて表示させたのですが、 ある条件で変数の中身を何もない状態にしたいのですが、どのようにすればいいでしょうか?
XP環境下でCS3を使ってflashliteを製作しております。 他のMCのプロパティを参照するには どうすればよいのでしょうか? ABCDの4つのMCを横に並べて表示したい場合でABCDはそれぞれ 横幅が可変します。その度に一個左のMCの_widthを参照して 自身の_xをその分マイナスして配置し位置を詰めたいのです。 ご教授何卒お願いいたします。
603 :
602 :2009/10/16(金) 11:46:29 ID:g8E0njvc
どなたか教えていただけないでしょうか・・ 何卒何卒・・ いちいち_widthを変数に格納してそれをいちいち呼び出して・・ という処理はいまいちだな・・・と思うのです・・
>>603 FlashってHTMLみたいにエラスティックなレイアウトできないよ。
なんかMacOS Xのドックみたいなインターフェースを作ろうとしているのかな。
自分で答えを持っているのだから、それを実装すべき
liteならルートからのパスたどってきゃいけんじゃないかな?
606 :
602 :2009/10/16(金) 16:02:34 ID:g8E0njvc
>>604 なるほど、ありがとうございました・・。
頑張ってみます
Flexならそこらへん比較的やりやすいんだけどねぇ
>>602 Liteはよく知らないけど
_parent.参照したいmc名._widthみたいにできないのかな?
AS3だとキャストしないと見れんかったけど
MovieClip(parent).参照したいmc名.width
配列から重複を除去する関数を作りたいんだが、 javascriptだと下のでいけるんだけど、acitonscriptだとシンタックスエラーになる なんで? function uniq(r){ return r.filter(function(a,i) !r.slice(i+1).some( function(b)a===b ) ) }
>function(b)a===b えっ
式クロージャJS1.8からの仕様でFirefoxしか対応してないから
>>611 そうだった。
修正してみたけど動かねえ。
デバッグしたらbに正しく値が入ってないみたいなんだけど
function uniq(r){
return r.filter(function(a,i){
!r.slice(i+1).some(
function(b){a===b}
)
})
}
return抜けてる
少し考えてから気づいた function uniq(r){ return r.filter(function(a,i){ return !r.slice(i+1).some( function(b){return a===b} ) }) } こうしろってことか。動いた。ありがと
箇条書きですみませんが、よろしくお願いします。 ●自分の環境 FlashDevelop(AS3.0) ●自分がやりたいこと 警告メッセージを表示する際、警告メッセージとして追加されたボタンを押すまでは他の操作を受け付けないようにしたい。 その際、奥のレイヤのマウスイベントを無効にする方法が分からない。 ●試してみた処理 画面全体を覆うように描画したShapeを一番前にaddChildし、MouseEvent.CLICKを受け付けるよう設定した。 上記を行うことにより奥のレイヤにマウスイベントは届かないかと思ったが、そんなことはなかった。
616ですが自己解決してしまいました。 マウスイベント対象の親オブジェクトのmouseChildrenにfalseを設定すれば、 やりたいことが実現できました。 お騒がせしました。
618 :
Now_loading...774KB :2009/10/18(日) 14:55:17 ID:wiIrQeho
CS3、AS3です。 A.swfに、B.swfを読み込ませて、A.swfのreplay_btnをクリックすると B.swfをリプレイさせるgotoAndPlay(1)メソッドをB.swfに送りたいと思います。 A.swfに、B.swfを読み込ませることはできました。 ローダ名は「loader_b」としています。 //A.swfのスクリプト var loader_b:Loader = new Loader(); loader_b.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader_b.load(new URLRequest("B.swf" )); ですが、リプレイのメソッドを書くとエラーがおきます。 //A.swfのスクリプト loader_b.content.gotoAndPlay(1); メソッドでなくプロパティでないからエラーが起きるのでしょうか? 良い方法がありましたらお教えください。
>>618 Loaderのcontentは、DisplayObjectを返すから、そのままMovieClipのメソッドを使おうとすると、
それDisplayObjectに無いメソッドだけどいいの?というようなエラーになってんじゃないかな?
解決方法は、読み込み完了後にMovieClipにキャストして使えばいいんじゃない
MovieClip(loader_b.content).gotoAndPlay(1);
とか、
var contentMC:MovieClip = loader_b.content as MovieClip;
contentMC..gotoAndPlay(1);
とか
CS3 flashlite です。 tellTargetに変数を指定する事はできるのでしょうか? tellTarget("hoge" add /:honge){ いろいろ } 上記のようなスクリプトでMC、hoge1-5までに命令を 出していきたいのですが・・・・ よろしくお願いいたします。
621 :
620 :2009/10/18(日) 19:40:16 ID:F9p/oKs6
すみません、あげます
liteならまだevalがあったんじゃなかった?
as3で、インスタンスの入れ子になっている所からメインタイムライン にライブラリからインスタンスを呼び出したいのです。 stageに配置までは分かるのですが、その後そのインスタンスの位置を stage上の"a_mc"インスタンスの位置に変えたい場合 どういった記述をすればいいのでしょうか? 呼び出したインスタンスを"b_mc"とすると、入れ子のインスタンス中に b_mc.x = (stage.a_mc.x); b_mc.y = (stage.a_mc.y); ではまずいのでしょうか?
>>623 (補足)上の記述は「キャスト」と言います。
>>625 ありがとうございました!
1日悩みましたが、少し作業が進めました。
619さん 遅くなりましてすいません。 ありがとうございました。解決しました。 クラスが違うってことですね。 619さんにいいことありますように。
628 :
Now_loading...774KB :2009/10/19(月) 04:40:52 ID:tMD0CmJN
CS4,AS3.0,WinXPです。ステージ上に複数のShape (名称:area0, area1, …)を配置するにはどうしたら良いでしょうか? 最初、配列アクセス演算子を使って for(var idx=0; idx<5; idx++){ var this["area"+idx]:Shape = new Shape(); //他の処理 addChild(this["area"+idx]); } としたところエラーになりました。 何か良い方法はありますか?
配列にクラスの型宣言俺もやって見たけどできなかった記憶がある :Shapeってやつを消して見てもだめだろうか 違ったらごめんね。 質問です var textfield:TextField = new TextField(); addChild(textfield); これで作成したフィールドがボタンとかぶってしまってどちらを上に表示させても困ってしまうので Textfieldの当たり判定を消したいのですが、可能ですか?
wonderflとかに乗ってるasのソースを flash cs3-4で使うにはどうしたらいいですか?
>>629 自己解決しました。
当たり判定を透明にして力技で解決
FirefoxでMOUSE_WHEELイベントを利用したとき、なぜイベントが2回入るのですか? 理由が知りたいです。
火狐の仕様
>>633 ありがとうございます。
対策がネットにあったのであてました。
>>628 よくわからんけど配列はダメなの?
var area:Array=[];
for (var i:int=0;i<5;i++){
area[i] = new Shape();
area[i].graphics.drawRect(x,y);
addChild(area[i]);
}
みたいな
>>629 textfield.mouseChildren = false;
>>635 さんきゅう!!! 出来ました!!!
(ちょっと改変)
var area:Array=new Array();
for (var idx:int=0; idx<5; idx++) {
area[idx] = new Shape();
with (area[idx].graphics) {
lineStyle(2, 0x00FFFF00);
beginFill(0xFF009900);
drawRect(30*idx,30*idx, 100, 100);
}
addChild(area[idx]);
}
CS3 AS.2.0 XPです。 answerという変数を持ったボックスにひらがなで答えを入力してエンターを押し、 答えが正しければ次のフレームへ、間違いなら文字を削除するというものを作りたいのですがうまくいきません。 ans1 = "こたえはこれ"; var key_obj = new Object (); key_obj.onKeyDown = function(){ if(Key.isDown(Key.ENTER)){ if(answer==ans1){ nextFrame(); answer = ""; } else{ answer = ""; } } } Key.addListener( key_obj ); ↑じゃうまくいきませんでした。どうすればいいか教えてください。
638 :
Now_loading...774KB :2009/10/20(火) 03:53:54 ID:oxmZowe2
WinXP-ProでCS4(AS3.0) newで生成したMCインスタンス内のグラフィックオブジェクトの塗り更新で 質問です。 初めに単純にステージに4つのMCを正方形の頂点に置いて、枠を引いて この内側を塗りました。イメージとしては、[■] な感じです。この『塗り』用 関数はdrawFunc()という名です。 この正方形の頂点MCを横にドラッグしてしても(横幅を変更しても)常に 塗り描画が更新されるように下のようにしました。 addEventListener(Event.ENTER_FRAME,onFrame); function onFrame(frameEvt:Event) { sh.graphics.clear();// var sh:Shape = new Shape(); による sh.graphics を消す。 drawFunc(); } つまり、[■] が [■■■] → [■■] → [■■■■] と表示されます。 これは良かったのですが、上の記述をMCのAにフレームアクションで書いて、 MCのB内に入れ子で(B[A]の形で)newで生成すると一瞬塗りはできるのです が直ぐに消えて更新が出来ません。 目的は、マウスやボタン操作に随時反応して描画更新をさせることです。 ※Event.ENTER_FRAMEをやめてボタンで既に塗られている状態に sh.graphics.clear(); drawFunc(); をすると塗りが消えてしまいます。 何か解決のヒントはありますか?
>>637 テキストフィールドを変数として扱うのをやめる
Key.isDown(Key.ENTER)ではなく、Key.getCode()を使う
>>639 Key.getCode()を使って、エンターで次のフレームに飛ばすことは出来ました。
ただ、答えが一致したらという条件を加えるとうまくいきません。
テキストフィールドを変数として扱うのをやめるとはどういうことなのでしょうか。
>>640 (639さんではないが)
プロパティを使って
テキストフィールド.text = "〜" ってことじゃない?
>>640 テキストフィールドのプロパティで変数に、answerっていれてるんだと思うが、
これはFlash5の頃、昔の使い方なんです
それは削除して、プロパティのインスタンス名(左端にある)にanswerといれる
値の参照はanswer.text
だから値を代入はanswer.text=""のようになる
テトリスとかぷよぷよのソースが公開されているサイトはないでしょうか AS2、3どちらでもいいです
645 :
Now_loading...774KB :2009/10/20(火) 18:53:54 ID:hcbfI9cF
javascriptかなんかで1行ソースみたいなので公開されて無かったかな? あれ流用すれば?
静止テキストをムービークリップにしてマウスオーバーで変化するボタンを作成しています。 が、テキストの字じゃない部分(たとえば「O」の丸の中など)はROLL_OUTになってしまいます。 なにか設定があるのでしょうか。
flash ヒットエリアでぐぐれ
>>647 ありがとうございます。
ボタンシンボルにあるようなヒットエリアを作り
テキストのROLL_OVERでなくヒットエリアのROLL_OVERでイベント発生させるわけですね。
分かりました。
新たな質問があります。
ROLL_OVERとROLL_OUT時に20フレームの動きをつけておりますが、
マウスオーバーしてすぐにマウスアウト、そしてすぐにマウスオーバーとすると
正常なマウスオーバーの終了フレームの状態になりません。
ROLL_OVER時の動作が完了する前に、次のROLL_OVERのイベントが発生してしまうからだと思うのですが
新たにROLL_OVERが発生したときは、現在の状態をクリアしてROLL_OVERの動作を正しく動作させたいのですが
どうすればいいでしょうか。
>>648 具体的にどう「動きをつけて」いるのかわからないので、大雑把にいうと
ROLL_OVERやROLL_OUTのエフェクト表示中か、そうでないかを区別する。
エフェクトMCの現在フレーム位置から判断してもいいし、フラグをたててもいい。
で、それぞれの状況に応じて、エフェクト表示続行とか最初からとか切り替えとかを
使い分ける。
652 :
Now_loading...774KB :2009/10/21(水) 23:57:30 ID:TUA3dO8s
winXPでCS4です。AS3.0を使用しています。 質問なのですが ShapeでmoveTo,lineToを使用して20本の曲線によって構成された曲線を ENTER_FRAMEを使いじょじょに曲げていくプログラムを作りました。 ただ、画面のチラつきがかなり出てしまっています。 このちらつきを解消する手段はないでしょうか?
ダブルバッファすれ
>>651 自己解決しました。
over時にgotoAndPlayで指定しているフレームを1フレーム目でなく
2フレーム目にすること(1フレーム目は空白キーフレーム))で誤動作がなくなりました。
有難うございました。
FLASHのオンラインゲームが良くありますがどうやって通信を行っているのでしょうか? HTTP通信ではないようなのですがソケット通信でしょうか
AS3、Flashdevelop です マウスカーソルの位置をコントロールすることは不可能でしょうか。 mouseX,Yは参照専用ですよね。 マウスカーソルの代わりにカーソルobjを表示し、見た目上擬似的に動かすことはできますが、 実カーソルの位置とはかけ離れてしまいます。 その時の相対座標を保持してどこかで帳尻を合わせれば出きないこともなさそうですが・・・ 何か案をお持ちの方おられましたらよろしくお願いします
>>656 それはOSの仕事をFlashムービーから実行できるって事になるからなあ
セキュリティ的にできちゃいけないことだし、できないんじゃない?
>>656 そう。XMLSocketあたりでぐぐればサーバーのサンプルも含めて見つかるんじゃない?
確か2冊くらい本も出てたはず。
>>656 同じような質問が過去に何度かあったけど、一番の近道は
本物を隠し(Mouse.hide();)、マウスポインタを自作して動かすという方法。
661 :
Now_loading...774KB :2009/10/23(金) 02:46:21 ID:E0b2U2BG
>>656 そんな事が出来たら、FLASHのムービーからマウスカーソルが出れないように出来るでしょ。
そんな危ない事が出来たらいけない。だから出来ないようになってる。
キーボードだけでパソコンをある程度操作出来る人だったら、それでも何とか出来るけど、
そうじゃない人だったら詰みだね
テキストをHTMLエスケープしたい ライブラリとかあったら教えて
実体参照化だけ?
var test;でtestという変数を作り test.a=10; test.b=20; という感じで代入するにはどうすればいいでしょうか
>>664 testという変数のシリーズに代入するということ?
それなら配列アクセス演算子を使う。
this["test"+A]=10;
this["test"+B]=20;
>>664 こっちか?
var test:Object = new Object();
test.a=10;
test.b=20;
キューポイントのtimeに設定出来るのは直接打ち込んだ数字だけ?
質問させてください。 Mac0Sで、AS3です。 画像にマウスオーバーすると、画像がポップアップされるようにしたいのですが、 うまくゆきません。 別ウィンドウを開くのではなくて、あくまでも画像を右上に表示したいだけです。 本(ただし、昔使っていたFlash8のもの・・・)に、似たような動作をするためのスクリプトが載っていたのでまねをしてみたのですが、 うまくいきません。 まず、gazouという名前のmcを写真の上に作りました。 画像に透明ボタンを配置して、そこに on(release){ loadMovie("/images/1.jpg", gazou); と書き込んでみたのですが、何も起きず。 (ちなみに旧バージョンでパブリッシュ設定してみました) CS3の本も見てみたのですが、よくわかりませんでした。 何か他に方法があったら教えていただけるとありがたいです。
root〜で変数参照できなくなったのはもうそういう書き方すんなってことなの? モーワケワカンナイ
>>668 AS3 画像 URLRequest
でググる。
ActionScript始めてみようと思うのですが、やはり難しいのでしょうか? JavaScript、PHP、HTML、CSS、XML、SQLなどは出来ます しかし、ActionScriptは動きが加わるので表座標計算とか難しい数学の知識とか必要そうだなぁという感じがします ちなみに、以前簡単なFLASHはSwishを使って数年前に作って触った事があります やはり同じプログラミング言語でも、JavaScriptやPHPなどからすると毛色の違うものなのでしょうか?
>>673 言語としては別に難しくはないけどオブジェクト指向を理解する必要あり
数学系知識は例を見て関数任せ
FlashDevelopとFlexSDKならフリーで環境作れるのでまずはやってみては
675 :
Now_loading...774KB :2009/10/24(土) 10:08:14 ID:mE1dfbLY
var container = new Sprite(); addChild( container ); var mc = new MovieClip(); container.addChild( mc ); trace( container.root ); //参照できる trace( container.stage ); //参照できる trace( mc.root ); //参照できる trace( mc.stage ); //参照できる removeChild( container ); trace( container.root ); //参照できない trace( container.stage ); //参照できない trace( mc.root ); //containerを返す trace( mc.stage ); //参照できない これであってる?
FlexとFlashの違いが今だにわからない・・・
>>674 オブジェクト指向という事は、まぁJavaScriptを(PHPも5.0からオブジェクト指向が加わっていますが)やっているのでとっつきにくい
というわけではなさそうですね
まだ何も取り掛かっていなくてActionScriptの概要もまるきっり知識が無い状態なのですが、例えばページが数秒後に切り替わるとか
クリックすると次の紹介欄に行くとかいうようなものはJavaScriptでも似たような事が出来るので難しくはなさそうですが、
人物が歩くというようなFLASHは髪の毛一本まで動きが計算されていそうで高度な数学的な知識がいるのかと思ってました
リブリーアイランドのようなものを作る気はないのですが、ああいうキャラクター毎に動きが出たりするようなものは凄い計算が要りそうだなぁ、と。
それでActionScriptは難しそうだから今まで足を踏み入れる自信が無かったのです
言語としては難しくはないという事なので(自分には難しく思えるかもしれませんが)、ちょっとは敷居が下がった気がします
返答有難うございました
>>677 それだけいろいろなことを学んできたんだから、取りかかる前から高度なことを目指して
悩んでいるより、まず始めてみることが大切なのは分かっているだろうに
>>676 俺も同じだけど、来月からFlexについても学習するつもり
うまい具合に「Flex 3.4プログラミング入門」という本が発売されたから購入してみる
stageに var gl:Number=1; と記述して「A」というムービークリップに trace(MovieClip(root).gl) と記述したときに 静的に配置したAからは1が出力されますが、動的に配置した「A」はエラーとなりますが なぜ?
フラッシュで方向キーの入力された値を使いムービークリップに斜め移動を行わせたいのですがどうすればよいでしょうか 現状のプログラムでは→↓と入力した場合→か↓どちらかにしか移動してくれません
↓押してるかどうかの判定でtrueなら さらに→を押しているかどうかの判定を入れて trueなら斜めに移動する処理いうのはどう?
>>681 あるいは、「Ctrlキーを押しながら〜」でCtrlキーと併用するのは?
684 :
Now_loading...774KB :2009/10/24(土) 18:51:29 ID:LJRrRYy8
通常半透明のclick_mcがカーソルを重ねた時に不透明になり、 クリックすると2フレーム目へ移動…としたいのですが これでクリックすると、2フレーム目へ移動せずにエラーで止まります。 色々調べたのですが解決法が分からず…宜しくお願いします //メインのタイムラインの再生を停止 stop(); //イベントリスナーの追加 click_mc.addEventListener(MouseEvent.CLICK, Down); click_mc.addEventListener(MouseEvent.ROLL_OUT, Out ); click_mc.addEventListener(MouseEvent.ROLL_OVER, Over ); click_mc.buttonMode = true; click_mc.alpha = 0.6; //startをクリックした際の、イベントハンドラ function Down(event:MouseEvent):void{ //click_mc.visible = false; gotoAndStop(2); } //ロールアウトのリスナー関数 function Out(event:MouseEvent):void { click_mc.alpha = 0.6; } //ロールオーバーのリスナー関数 function Over(event:MouseEvent):void { click_mc.alpha = 1; }
//ロールアウトのリスナー関数 function Out(event:MouseEvent):void { var click_mc=event.currentTarget; click_mc.alpha = 0.6; } //ロールオーバーのリスナー関数 function Over(event:MouseEvent):void { var click_mc=event.currentTarget; click_mc.alpha = 1; } で動くはず
687 :
Now_loading...774KB :2009/10/24(土) 23:05:09 ID:RHwVozAQ
質問させてください。 PHPの変数 $hoge = 'hoge'; これをFlash側で取得するにはどうしたらできますでしょうか?
688 :
Now_loading...774KB :2009/10/25(日) 00:15:09 ID:jAoibbwN
Box2Dの質問です。 Ver2.0.1から"GetContactList();がm_contactList メンバからアクセス"に変わった とあるのですが、具体的にどう書き替えたら良いのか分からず困っています。 助言をお願いします。
>>687 AS3.0 PHP 通信
とかで検索すればいっぱい出てくるぞ
690 :
688 :2009/10/25(日) 01:26:55 ID:jAoibbwN
自己解決しました
691 :
Now_loading...774KB :2009/10/25(日) 11:20:14 ID:ofZzpy4J
多次元連装配列を作りたいのですが、どうしたらいいでしょうか? いくつかサイトを回ったのですが、結局for文やif文を組み合わせて 無理やり多次元連想の形を作ったものしかありません。 phpなどのようにはいかないでしょうか?
new Array();を使ってForでぶん回すしかない
693 :
Now_loading...774KB :2009/10/25(日) 12:03:44 ID:ofZzpy4J
あーやっぱり…… わりました、それで進めます。 ありがとうございましたー。
普通にオブジェクトで済む話じゃないのそれは? var oList ={ item1:{hoge:1,piyo:-1}, item2:{hoge:2,piyo:-1} }; trace(oList.item1.hoge); trace(oList["item2"]["piyo"]); それとも、こういうことがやりかいんじゃない?
695 :
Now_loading...774KB :2009/10/25(日) 18:24:04 ID:7lxAJNZk
CS3環境で製作しています。 getTimer()が初期化できないのですが 皆さん、これはどのようにして初期化しているのでしょう・・ フレーム1で tms=0; t_sc=0; にしているはずなのですが 再生フレームに来て もう一度プレイすると前の経過時間をgetTimer()が 吸ってしまうのです・・ 再生は_currentframe-1で再生し 終了フラグを受けると終了画面からもう一度最初からを 選ぶタイプです。 t_sc = getTimer(); if (t_sc>=tms+1000) { tms = t_sc;//タイマー初期化 } /:t_cont = Math.floor(t_sc/1000);//時間表示 何卒よろしくお願いします。
getTimerはFLASHが起動してからの何秒たったかだぞ
697 :
695 :2009/10/25(日) 18:47:23 ID:7lxAJNZk
>>696 getTimer()がそういうものだということは理解しているのですが
再開される度に初期化して0からにしたいのです。
ストップウォッチのようなflashも見て回ったのですが
それを
>>695 に当てはめてもどうにも
>>696 さんのおっしゃられる
「起動してからの時間」しか取らないので困っているのです・・
これを起動してからの時間ではなく、再生してからの時間として
計測するような処理はどのようにすればいいのか分からずに
困っております・・。
再生したときの秒数覚えておいて getTimerから引くとか
>>697 何秒にしたいのかわからんけどこれでいいんじゃないか?
t_sc = getTimer();
if (t_sc-tms>=1000) {
tms = t_sc;//タイマー初期化
}
t_cont = Math.floor(t_sc-tms);//時間表示
trace(t_cont/1000);
700 :
695 :2009/10/25(日) 20:02:54 ID:7lxAJNZk
>>698 >>699 ちょっと説明が下手で申し訳ないのですが
ゲームのようなもので、その制限時間を計る、というタイプのものなのです。
開始フレームでtms,t_scを初期化してプレイ用フレームへ。
プレイ中に時間を計測。
プレイ中に何がしかのフラグが立てばgotoAndPlayで特定フレームへ
飛ぶという仕掛けなのです。
そして、終わり画面があるのですが、「もう一度ボタン」を押すと
どうしても前回のプレイ中の画面での計測時間からスタートして
しまうのです・・・・
プレイ中フレームのところにだけ計測用MCを配置してendフレームに飛ばしたら
消えるかな・・?とかやってはみているのですが・・それもダメで・・
「制限時間を計る」がよく分からないが、プレイ時間を計るならば Dateのミリ秒の差を取ればいいんだが
>>695 って1秒をカウントしてるようだけど、経過時間はどうやって記録してんの?
そこを初期化すりゃいいんじゃないの?
ってt_contってのが経過時間か、でもこれじゃgetTimer()の値を秒にしてるだけじゃね? t_msには約1秒毎の値が入るみたいだけど、何に使われてるのかな まぁとにかく、ゲーム開始時のgetTimer()の値を変数に入れて、毎フレームのgetTimer()との差を取れば それが経過時間になると思うけど
706 :
695 :2009/10/26(月) 00:41:13 ID:c0U9ebKa
>>701-705 いろいろとご意見ありがとうございます。。。
しかし経過時間は最初から取得出来ているのです・・・
1プレイ目・・0から始まって65秒かかる。
2プレイ目・・最初からなのに何故か67秒から始まる・・
というようにflaを起動した時間しか取らずに
2プレイ目も0から始まってくれないので困っているのです。。。
というような相談をしていたのです・・
>>703 >>421 じゃないです。
時間でよく分からなくなった場合は、 とにかくtraceとかで、各状況毎の結果を見比べながら 少しずつ設定していくといい 大抵の場合は、どこかで勘違いしてる場合が多いから
708 :
Now_loading...774KB :2009/10/26(月) 01:50:22 ID:OphfLW94
Flexでコンパイルすると動くのに、Flashでパブリッシュすると エラーが起こるというのはどういう理由でしょう。
709 :
708 :2009/10/26(月) 02:31:46 ID:OphfLW94
自己解決しました
ゲームのスコアと名前をローカルに保存してランキング化して表示させたいのですが、参考になりそうなサイトやサンプルなどないでしょうか?
>>706 だからもう90%答え出てるだろ
これ見てわからないならFLASHやめた方が良い
>>706 getTimerはFlashPlayerが再生を開始してからの時間でもあるから、ASから初期化はできないと思うよ
一回FlashPlayerを終了してもう一度再生すればできるだろうけど
だから、単にgetTimerを秒にしてるだけじゃあなたがやりたいことはできないと思うよ
ある一点の座標が3つの座標(三角形)内に存在するかどうかを検査するにはどうすればいいでしょうか 全て計算で行うためhitTestなどは使用できません 解答宜しくお願いします
flash cs3からcs4にしたんだけど 重いしインタフェース使いづらいしで、cs3に戻そうかと検討してます。 ツィーンとかも自分の作品ではtweenerクラス使ってるし、cs4でやるメリットって何かあるんでしょうか?
>>706 いいか?
Flash起動→ゲーム開始→1プレイ終了→ゲーム開始→2プレイ終了
この場合、1プレイ終了時のgetTimer()は、Flash起動から1プレイ終了時までの時間
2プレイ終了時のgetTimer()は、Flash起動から2プレイ終了までの時間
を出すだけ。
だから、経過時間は累積で増えていく。
「ゲーム開始からプレイ終了」までどれだけ時間がかかったかを知りたいなら
1)ゲーム開始時にgetTimer()でFlash起動からゲーム開始までの時間を記録
2)プレイ終了時にgetTimer()でFlash起動からプレイ終了までの時間を記録
3)2の値から1の値を引くと、ゲーム開始からプレイ終了までの時間が出る
4)3の値を秒換算になおす
という手順が必要。初期化ではなく、開始時の時間と終了時の時間をとれってだけ。
これでわからないなら、おまえさんの頭の悪さを呪ってくれ。
717 :
714 :2009/10/26(月) 13:29:44 ID:E3J+/yIB
自己解決しました
718 :
Now_loading...774KB :2009/10/26(月) 14:10:39 ID:BuasO4OE
Flexでactionscriptゴリゴリしてるんだけど、Treeコンポーネント 使わずに自作Treeを作りたいんですが、できますかね? 再帰使って出来るかと思ったけどうまくできましぇん。
>>710 AS2.0以上ならSharedObjectでググる。
AS3.0が可能ならFileクラスとFileStreamクラスでググる。
>>715 最大の利点はAIR1.5とPlayer10が可能なこと。
ただし、この先ファイル保存や単独での3D描画をしない
ことが確実ならCS3で十分。
俺は必要なのでCS4を使っている。
>>706 そもそも、traceで検証しながら作業しているのか?
720 :
Now_loading...774KB :2009/10/26(月) 19:27:25 ID:dutpCW6W
652で質問させていただいたものなのですが 少し調べてみて、actionscript3.0でダブルバッファの設定を いじる方法がわかりませんでした。 重ねての質問で申し訳ありませんが、だれか教えていただけないでしょうか?
FLASHは標準でダブルバッファになってるけどね
722 :
Now_loading...774KB :2009/10/26(月) 21:16:57 ID:ZmiPh3tk
function hoge() { } function hogehoge( hoge:Function ) { (ここ) } hogehoge(_root.hoge); ↑のソースの(ここ)の部分で引数で受け取った関数"hoge"のターゲットパスを取得する方法はありませんか?
あと引数で文字列として渡す方法以外でお願いします。
>>719 ありがとうございます。cs3に戻すのも面倒なのでしばらくcs4使ってみます。
ここ数ヶ月前にC++から転向したものですがVectorクラスのないActionScriptが想像できない。
Arrayがありゃ充分だろう
728 :
710 :2009/10/27(火) 00:12:10 ID:WoLZnbsj
>>719 いろいろ調べて作ってみたんですけど、どうもうまくいきません。
CS3 AS2.0 XPです。
onEnterFrame = function(){
ScoreList = new Array();
Rank = SharedObject.getLocal("TestData","/");
if(Rank.data.rank1_s == undefined ){
Rank.data.rank1_s = 0;
Rank.data.rank2_s = 0;
Rank.data.rank3_s = 0;
}
ScoreList[0] = Rank.data.rank1_s;
ScoreList[1] = Rank.data.rank2_s;
ScoreList[2] = Rank.data.rank3_s;
729 :
710 :2009/10/27(火) 00:12:51 ID:WoLZnbsj
ScoreList.push(total); ScoreList.sortOn(hantei); function hantei(a, b) { if (a>b) { return 1; } else if (a<b) { return -1; } else { return 0; } } rank1_s.text = ScoreList[3]; rank2_s.text = ScoreList[2]; rank3_s.text = ScoreList[1]; Rank.data.rank1_s = ScoreList[3] Rank.data.rank2_s = ScoreList[2] Rank.data.rank3_s = ScoreList[1] Rank.flush(); } 配列に1〜3位までのスコアをおき、pushで今回のスコア(total)を足して、 sortでスコアの大きい順に並べ替えたあとに再表示させてるつもりなんですが、1〜3位すべての値がtotalの値になってしまいます。
>>729 これそのまま動かしてるなら、そうなるだろうね
onEnterFrameだから毎フレーム呼ばれて、そのたびにランキングにtotal加えて並べ替えてるんだから
totalが一番大きい値なら、各順位のデータは一回ごとに押し出されてなくなって
最終的に全てtotalだけになる
これをちゃんと動かすだけなら、onEnterFrame = nullとかして一回しか実行しないようにするのが最短かな
まぁ普通onEnterFrameでデータ保存とかやらんだろうけど
731 :
Now_loading...774KB :2009/10/27(火) 01:16:36 ID:O83QtBtn
AS2、3どちらでも ファミコンのマリオみたいな2Dゲームを作っていて、その際に制限時間を設けており、ダイナミックテキストで表示。 途中まで進むと休憩バーがあり、触れると一時的に時間が停止して、再度休憩バーに触れると先程まで経過した時間の続きを計測させたいのですが 休憩中の時間を含んだ時間が表示されてしまいます。 何かヒントをください
休憩中はカウント止めるだけじゃないのか?
Arrayなんてバグの元
>>731 どういうカウントのとりかたにもよるだろうに
>>731 3.0なら素直にTimerクラスで1000ミリ秒カウントで済むんじゃね?
2.0なら上のほうで散々説明されてるgetTimer()で使って差分で判定かな
736 :
Now_loading...774KB :2009/10/27(火) 13:23:20 ID:RA8bdZ1f
外部からデータを拾って、FLASHで反映させる場合。 XMLを直接読み込ませる方法があると思いますが、 場合によってはPHPなどを仲介するサンプルも見たりします。 素人的には直接XMLを読み込ませる方法がシンプルだと思う のですが、PHPなどを仲介させる利点などあれば教えてください。
>>736 その時に応じたデータを返したいときなんじゃない?
Flashから抽出条件問い合わせて、PHPでDBとかから必要なもの抽出して返すとか。
いつでも固定のデータなら固定ファイルでも構わないと思うけど。
データベースが扱いやすいから
親のswfと複数の子のswfで構成されたゲームを作ったんですが、 これってひとつのswfにまとめることってできる? ゲームポータル系のサイトってだいたい1ゲームにつき1つしかうpできないよ
初めまして。Flashを勉強し始めて3週間くらいです。
現在、CS4+AS3.0にて付け焼き刃でFlashを作成中
なのですがどうにも解決できなく…。
http://blog.ipuheke.jp/?p=236 http://blog.orangeage.net/ を参考に、「ドットの入ったFLVをウィンドウサイズ
いっぱいに表示」ということをやろうとしています。
動作確認用に320×240のFLVを用意(本番ではもっと
大きくする予定です)。敷き詰め用に32×32の透過
pngを用意。ビットマッププロパティにて、クラス=
「bg」、基本クラス=「flash.display.BitmapData」
となっています。320×240のステージを用意し、
そこにflvをドラッグしてMC化(基準点:中央)し、
インスタンス名を「video」としました。タイムライン
にムービークリップが配置されている状態です。
ドキュメントクラスを「zengamen」とし、「zengamen.as」
を読み込ませています。以下にソースを書きます。
AS歴2週間くらいなので何がなんだか…。思うような
動作をするには何がいけないのでしょう?
741 :
740 :2009/10/27(火) 18:07:38 ID:XmMoBU8m
■zengamen.as(その1/2) package{ import flash.display.BitmapData; import flash.display.Sprite; import flash.system.Capabilities; import flash.events.Event; import flash.display.Stage; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.display.MovieClip; public class zengamen extends Sprite{ public function zengamen():void { var dotSprite:Sprite = new Sprite(); var bgTile:BitmapData = new bg( 32, 32 ); dotSprite.graphics.beginBitmapFill(bgTile); dotSprite.graphics.drawRect(0, 0, Capabilities.screenResolutionX, Capabilities.screenResolutionY); dotSprite.graphics.endFill(); addChild(dotSprite);
742 :
740 :2009/10/27(火) 18:08:34 ID:XmMoBU8m
■zengamen.as(その2/2) stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; var video_ratio = video.height/video.width; video.x = stage.width/2; video.y = stage.height/2; if (stage.height/stage.width>=video_ratio) { video.width = stage.height/video_ratio; video.height = stage.height; } else { video.width = stage.width; video.height = stage.width*video_ratio; } } } }
737さん738さん。ありがとう。 良くわかりました。
744 :
Now_loading...774KB :2009/10/28(水) 05:19:56 ID:fntJl6Hf
null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 というエラーが下記の部分で出てしまいます。 どのような原因が考えられるでしょうか。 このコード自体は、ネットで公開されている方のものですが、使用している Box2Dのバージョンが違う為それを改造しています。 エラーは出るものの、表示は出来るんですが、プレイヤーや プレイヤーが発射する玉が動きません。 振り向いたりもするので、キー入力も受け付けているようです。 m_Body.m_linearVelocity.x = (0.0 + 100 * (m_InputR - m_InputL))/PhysManager.PHYS_SCALE; if(m_InputU > 0){ m_Body.m_linearVelocity.y = (0.0 - 150)/PhysManager.PHYS_SCALE; }
>>744 そのまんまの意味。
データが何も入ってない変数で計算しようとしてるから、エラーが出てる。
デバッガーかトレイスで変数確認してみたらどうでしょ
AS3.0でテトリスを作る場合、皆さんはブロックの描画処理をどうやって行いますか? (addChildで一つずつ描画、ビットマップに書き出しなど)
748 :
Now_loading...774KB :2009/10/28(水) 14:09:13 ID:fw9nlJzY
FlashMXでimg0というインスタンス名のムービークリップにJPG画像をloadMovieで読み込みました それをドラッグさせようと _root.img0.onPress = function(){ this.startDrag(); } としたのですが、ドラッグできません。 画像を読み込まずにやったり、img0というムービークリップに直接ドラッグ処理をするとドラッグできました。 どうにかして上の処理でドラッグさせることできないでしょうか?
>>747 テトリス程度なら描画処理を切り詰める必要ないので拘りに応じて作る。
751 :
Now_loading...774KB :2009/10/28(水) 21:34:50 ID:MnFbXWTg
FLASH CS4 AS2 10秒経過したらゲームオーバーにしたくて(フレーム移動で対応)1からカウントをダイナミックテキストで表示しているのですが カウント開始ボタンを押すと、押すまでに取得した時間が表示されてしまいます。 何か参考になるサイトがあれば教えてください。それか、誰かが物凄い勢いで答えてくれたらとても嬉しいです
753 :
Now_loading...774KB :2009/10/28(水) 22:35:18 ID:MnFbXWTg
ありがとうございます! 本当に助かりました!
つか時間関係のライブラリとか探せばありそうなもんだけどな
755 :
Now_loading...774KB :2009/10/28(水) 23:28:41 ID:SDFkjm4v
AS2.0,CS4,WinXP MC内にattachMovie()で配置した複数の子MC(インスタンス)を名前を指定せずに 一気に消す方法はありますか? abc.removeMovieClip()でインスタンスを指定して(abcと指定して)消すのは分かり ますが、複数の名前があり、また数も多く記述が面倒です。 1つの理想形では、AS3.0のようにremoveChildAtを使って重ね順に(番号指定で) 下記のように消す方法です。 for(var id=0; id<個数; id++){ removeChildAt(個数-id-1); } よろしく願います。
756 :
755 :2009/10/28(水) 23:40:01 ID:SDFkjm4v
(追記) 一番の理想形は、携帯での全消去(AllDelete)のような一括消去です。
757 :
Now_loading...774KB :2009/10/29(木) 06:33:14 ID:2ymuVMsV
CS3でEmbedを使う方法はありますか? CS4で無いと無理そうですが…
>>755 for (var name in mc) {
if (typeof(mc[name]) == "movieclip") {
mc[name].removeMovieClip();
}
}
759 :
Now_loading...774KB :2009/10/29(木) 21:40:21 ID:m0ISIR2g
変数名を取得することって出来ますか? ググってもそれらしきものは出てこないのですが
レンタルサーバーのヘテムルでflash media serverを使って通信を行いたいのですが64kbpsの5コネクションまでとなっています これはどういう意味なのでしょうか 5つまでしか同時に通信が出来ないということでしょうか
761 :
755 :2009/10/30(金) 00:37:26 ID:LgO8QdjS
762 :
Now_loading...774KB :2009/10/30(金) 19:39:46 ID:T4Rm1fvF
userData.id を使うとエラーでパブリッシュ出来ないんですが何が原因でしょうか //var floorShape:Shape; var floorBodyDef:b2BodyDef = new b2BodyDef(); floorBodyDef.position.Set(2.5, 3);//左から、上から floorBodyDef.angle = 1 * (Math.PI / 180); floorBodyDef.userData = floorSpt; //floorBodyDef.userData.id = "box";//なぜかエラーする floorBodyDef.userData.width = 4 * 100; floorBodyDef.userData.height = 20; spt.addChild(floorBodyDef.userData); var floorSpt:Sprite; floorSpt = new Sprite; floorSpt.graphics.beginFill(0xBBBBBB, 0.6); floorSpt.graphics.drawRect(-2 * 100, -3, 4 * 100, 6); floorSpt.graphics.endFill(); //shape var floorShapeDef:b2PolygonDef = new b2PolygonDef(); floorShapeDef.friction = 1; floorShapeDef.SetAsBox(2, 0.1);//幅、厚さ:1/2で考える //床コリジョン生成 var floor:b2Body = world.CreateBody(floorBodyDef); floor.CreateShape(floorShapeDef); floor.SetMassFromShapes();
763 :
762 :2009/10/30(金) 19:43:28 ID:T4Rm1fvF
すいません、やはりこっちでお願いします。 //body var floorBodyDef:b2BodyDef = new b2BodyDef(); var floorSpt:Sprite; floorSpt = new Sprite; floorSpt.graphics.beginFill(0xBBBBBB, 0.6); floorSpt.graphics.drawRect(-2 * 100, -3, 4 * 100, 6); floorSpt.graphics.endFill(); floorBodyDef.userData = floorSpt; //floorBodyDef.userData.id = "floor"; floorBodyDef.userData.width = 4 * 100; floorBodyDef.userData.height = 20; floorBodyDef.position.Set(2.5, 3);//左から、上から floorBodyDef.angle = 1 * (Math.PI / 180);; spt.addChild(floorBodyDef.userData); //shape var floorShapeDef:b2PolygonDef = new b2PolygonDef(); floorShapeDef.friction = 1; floorShapeDef.SetAsBox(2, 0.1);//幅、厚さ:1/2で考える //categoryBitsで自分の属するグループを指定.デフォルトは1 //maskBitsで自分と衝突が起こるグループを指定.デフォルトはffff floorShapeDef.filter.categoryBits = 0x0001; floorShapeDef.filter.maskBits = 0x1111; //床コリジョン生成 var floor:b2Body = world.CreateBody(floorBodyDef); floor.CreateShape(floorShapeDef);
>>763 どんなエラーが出るかくらい書いたら?
まぁそれはともかく、Spriteにidなんてプロパティあったっけ?
〉floorSpt = new Sprite;
ここも気になるけど
765 :
762 :2009/10/30(金) 20:25:38 ID:T4Rm1fvF
>>764 こういう風に書いてたサイトもあるので、あるのかどうか分かりません。
エラーは下記です。
ReferenceError: Error #1056: flash.display.Sprite のプロパティ id を作成できません。
767 :
762 :2009/10/30(金) 21:13:14 ID:T4Rm1fvF
768 :
638 :2009/10/30(金) 21:40:44 ID:x+5gBCLX
>>768 drawFunc()の中身が分からんと何とも……
エスパーするとマウス座標が想定通りに取れてないとかかな
>>722 関数オブジェクトはムービー系オブジェクトとは立ち位置が違う存在なので
(どっちかって言うとECMA側の存在)取得する方法は無かったかも
うろ覚えだけど callee とか caller とか無かったっけ? それも立ち位置違うようなら方法は無いから、
自分でパックしたクラスでも用意するのが普通の判断
>>768 俺、入れ子状態でも配置できてドラッグリサイズ可能な汎用Windows風ウィンドウ部品とか
AS3で書いてるが、とりあえずENTER_FRAMEとか使わないな。
ましてその中で new Shape とかなんでやねんって感じだ。
俺の場合、他言語でのノリそのままにマウスのイベントに対して、そのハンドルのタイミングで
SpriteやMovieClipのbitmapDataに対してドローしてる。
773 :
638 :2009/11/01(日) 03:42:37 ID:m/B0b7np
>>769 >>772 どうも。
テストでは上手くいくのですが、入れ子にした途端にダメです。
四隅のドラッグは検知しているようですが・・・
ENTER_FRAMEを使う理由は、clear()で前の描画を消して→再描画
という更新作業を繰り返すためです。
もっと調べてみます。
>>773 ごめん一個見間違えてたところある。よく見たら new Shape() の所コメントアウトされてたのな
ちょっと事情で携帯P2なもんだからよく見えて無かった。
改めて元質問見直して見た&俺は普段 FlashDevelop の人なのでコードのスタイル違うかもしれないが、
例えば trace かけてAもBもイベントはちゃんと発生してるのは確認した?
あと別の所で、ADD_STAGE イベントとか使って初期処理はしてる?
コンストラクタで生成されたタイミングでは、例えば幅の情報とか信用できないので、
(=まだメモリに展開されただけなので表示系の処理は準備が完了してない)
ステージに追加された後に判定してると思うけど、入れ子の場合、想像より段階が発生するので
タイミングが合わずに正しい幅ゼロで計算されてる可能性がある。
例えばwidthやheightを拾って何かしている場合、もっとも正しい値が欲しかったら、
ADD_STAGEの後ENTER_FRAMEで1回以上FLASHの描画処理が走った後でないと
思ったように描画されない。
時間としては1フレの差なので、タイミングや書き方によってはたまたま正常に見える場合もあるけど、
内部的にはそんな感じだ。
主にdrawFunk以外を調べてみて
AS2 CS4 WinXP 初歩的なことかもしれませんが質問させてください。 function Blink(target_mc:MovieClip, BMaxCnt, BMaxEndCnt):Void { BMinCnt = BMaxCnt/2; BCnt = 0; BEndCnt = 0; target_mc.onEnterFrame = function():Void { BCnt++; if (BCnt>=BMinCnt && BCnt<BMaxCnt) { this._alpha = 0; } else if (BCnt == BMaxCnt) { this._alpha = 100; BCnt = 0; BEndCnt++; if (BEndCnt == BMaxEndCnt) { delete this.onEnterFrame; } } }; } ↑というスクリプトを書いてタイムライン上に置いたMCに onClipEvent (load) { _root.Blink(this,4,4); } と書き、手軽にブリンクができるスクリプトを作ったんですが ブリンクさせるMCが同時に2つあると変数がかぶってしまうのか うまいこと動きません。 MCが同時に2つ3つあってもブリンクさせるにはどこを直せば動くようになりますか?
AS3.0のアニメーションライブラリで一番軽いものはなんでしょうか
777 :
775 :2009/11/02(月) 17:13:49 ID:i7tcMJS3
自己解決しました。 function Blink(target_mc:MovieClip, BMaxCnt, BMaxEndCnt):Void { BMinCnt = BMaxCnt/2; target_mc.BCnt = 0; target_mc.BEndCnt = 0; target_mc.onEnterFrame = function():Void { this.BCnt++; if (this.BCnt>=BMinCnt && this.BCnt<BMaxCnt) { this._alpha = 0; } else if (this.BCnt == BMaxCnt) { this._alpha = 100; this.BCnt = 0; this.BEndCnt++; if (this.BEndCnt == BMaxEndCnt) { delete this.onEnterFrame; } } }; }
3つの値が同値の場合処理をするというif文を書く場合 一番簡潔に書ける書き方はどのような書き方になるでしょうか
a==b&&b==c ==で同値と判定できる物の場合 a==b==c なんて答えは期待してはいけない
780 :
Now_loading...774KB :2009/11/03(火) 23:07:55 ID:2/UzT0O/
横スクロールアクションを作っていて AS3.0で衝突判定を取り、空中にいる時はジャンプ 出来ないとしたいんですが、連打や押しっぱなしにしていると 何故か空中にいる時もジャンプが出来てしまいます。 原因と思われる箇所は下記なんですが、何か分かりますか。 for (var ce:b2ContactEdge = bb.m_contactList; ce != null; ce = ce.next){ if (ce.contact.GetShape1() && ce.contact.GetShape2()) { var Obj1:Object = ce.contact.GetShape1().m_body; var Obj2:Object = ce.contact.GetShape2().m_body; if (Obj1.m_userData && Obj2.m_userData) { }else{ ground = true; trace(m_InputU,ground,"衝突"); } } ジャンプさせる条件はm_InputUに1を渡して、下記にしています if (m_InputU > 0 && ground){ square.m_linearVelocity.y = -2.5;//ジャンプ
>>780 日本語になってないぞw
それと、どのオブジェクトがどの役割をしているのかが分からん。
スクリーンショットして画面をUpし、質問文を書き直すのが吉。
マジレスすると
>>781-782 と同意見
こうすればいい、ってサンプル書こうとすると全部1からこっちが書かないといけない雰囲気
で、それをコピペして動きました!ってなって、今度は違う箇所で同じ事になり、
結果、作者はこのスレの名無しって作品が出来上がる
なのでそれが嫌なら目的と状態を観察して分析して試して、その後ポイントを絞って質問するといいかも
ちなみに
>>780 がまったく理解できていないと思われる理由は、作りの詳細の説明がないこと、
前提の説明がおかしいと、原因と思われる箇所だと提示されたソースが本質的でないこと、
あきらかに他人のライブラリとおぼしき詳細不明な属性値について唐突に言及していること。
色んな他人のソースをかき集めてキマイラみたいな状態になってそうな予感
単純に元質問の答えを書くなら、「空中にいる、ってフラグでも立ててその間は単にキーイベントのハンドラをスキップする」だけ
ハンドラと判定が別立てならここに質問せずとも自分で簡単に気づける程度の話だ
786 :
Now_loading...774KB :2009/11/04(水) 14:01:22 ID:xO6xARZF
はじめまして、当方Flashを触り始めて1ヶ月ほどの者で、 この度ニコニコ動画の生放送のようなモノを作ることになりました。 環境はCS4+AS3.0、FMS3.5で開発しており、動画の再生は何とかできたのですが、 ライブ配信が始まってからの時間(ニコニコ生放送でいうところの"経過時間")を 取得する方法がわかりません。 ググって調べてはいるのですが引っかかるのは動画が再生されてからの時間だけです。 配信が始まってからの経過時間を取得する方法をご存じの方、 どうかご助力お願いします。
787 :
Now_loading...774KB :2009/11/04(水) 14:04:11 ID:l+8d8fn0
788 :
Now_loading...774KB :2009/11/04(水) 14:08:33 ID:l+8d8fn0
>>786 そのライブ配信が始まるタイミングで時間記録して現在時間との差分取るだけのような
どんな処理書いてるかわからないけど、自分で書いた仕様なら具体的な実装コードはあなたしか知らない
789 :
Now_loading...774KB :2009/11/04(水) 14:28:24 ID:+D1UOLmz
外部SWFをロード後、表示サイズが固定になり変更できません。 以下のような感じで、AS3で、A.swfの中にB.swfを読み込んで表示しようとしています。 var Bloader:Loader; Bloader.loadBytes(B.swfのByteArrayデータ); addChild(Bloader); 単体でB.swfを動かすと400×400で表示されますが、A.swfでloadBytesして表示すると、描画サイズが375×500になり、下が欠けます。 Bloader.heightを変更しても効果ありません。 しかし、B.swfの代わりにC.jpgの画像を読み込ませると、問題なく元のサイズで表示され、またheightを変更すると、思い通りに変更したサイズで表示されます。 mxmlで以下のようにすると問題ないのですが、最終的にはloadBytesにしたいので、解決になっていません。 <mx:SWFLoader source="B.swf" scaleContent="true"/> 恐れ入りますが、ご教示願えませんでしょうか。
790 :
786 :2009/11/04(水) 15:16:29 ID:xO6xARZF
>>788 レスありがとうございます。
ライブ配信の途中からでも閲覧できるようにしたいのですが、
途中からSWFを起動した場合でも配信開始の時間を取得できるのでしょうか?
この経過時間を利用してコメントの表示タイミングを指定するつもりですので、
なるべく正確な時間を取得したいと考えています。
遅くなりましたが、以下がドキュメントクラスの内容です。
public class Test extends Sprite {
private var PATH_FMS:String = "rtmp://192.168.11.126/live"
private var video:Video;
private var nc:NetConnection;
private var ns:NetStream
public function Test() {
init();
}
private function init():void {
video = new Video()
addChild(video)
//ネットワーク接続
connectFMS();
}
791 :
786 :2009/11/04(水) 15:19:24 ID:xO6xARZF
//video受信 private function receiveVideo():void{ ns = new NetStream(nc); ns.client = new Object(); ns.play("○○○○"); //videoに直接ストリームをattach video.attachNetStream(ns) } //ネットワーク接続 private function connectFMS():void{ nc = new NetConnection(); nc.objectEncoding = ObjectEncoding.AMF0; nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus); nc.connect(PATH_FMS); nc.client = new Object(); } //ネットワーク接続イベント private function onNetStatus(evt:NetStatusEvent):void { if (evt.info.code == "NetConnection.Connect.Success"){ //video受信 receiveVideo(); } } }
792 :
Now_loading...774KB :2009/11/04(水) 15:29:38 ID:l+8d8fn0
>>790-791 ああそうか、「途中から参加した場合」って話か
多分それは、少なくともクライアント側だけじゃわかりようがないと思う。
あなたが提示したソースは単にNetStream使った受信の為の仕掛けで、
そこにあるのはクライアントローカルでの開始や終了の情報だけだ。
つまり「いま受信開始した内容は実はすでに始まっている全体スパンの一部です」っていう
別の情報をサーバ側から送る仕掛けでも作らないと無理なんじゃないかな
時間軸は最低2本あるよ。
ローカル再生のスパンと、コンテンツ固有のスパン
クライアントローカルでの開始や終了って言い方は曖昧だった。 要は「サーバから(何かを)受信開始/終了しました」って だけしか情報が無いって事。 そこに自分で「実はこれは、とある時間軸の一部です」って情報を送る仕掛けが必要、って事。配信開始時刻とか サーバ側がもしもそれを送ってないなら、それも実装しないと無理
794 :
786 :2009/11/04(水) 15:37:43 ID:xO6xARZF
>>792 やはりクライアント側だけでは対応できませんでしたかー、
薄々そうじゃないかとは思ってましたが……。
FMS側は別の人間(こっちも素人)が設定しているので
とりあえずその人と相談してみます。
お答えいただきありがとうございました。
恐らくWindowsのキーリピート機能が原因だと思うのですが、 キーを押しっぱなしにした時も押した一回だけキーイベントを実行、とするにはどうすればいいのでしょうか? 環境はAS3.0でFlash Developを使ってます。 よろしくお願いします。
>>795 たぶんこんなん
var keys: Array = [];
stage.addEventListener(KeyboardEvent.KEY_DOWN, function( event: KeyboardEvent): void
{
if (!keys[event.keyCode])
{
keys[event.keyCode] = 1;
//1回しか実行されない
}
//毎回実行される
});
stage.addEventListener(KeyboardEvent.KEY_UP, function( event: KeyboardEvent): void
{
keys[event.keyCode] = 0;
});
はじめまして、winでMX2004を使ってます。 attachmovieについて勉強しているのですが、行き詰ったので質問させてください。 attachmovieを使い(ボタンを押すたびに)Itemを複製して、 複製されたもの(例えば、item1をクリックしたらitem1だけ)を あらかじめステージに配置したボタン(色を指定しています。)クリックで色を変えたいのですが 可能でしょうか? 可能であればご存知の方、どうかご助力お願いします。
>>796 とても早い回答、本当にありがとうございました。
おかげで先に進めそうです
>>797 2004てことはAS2.0かな。
ボタン押す→attachMovieで複製→複製されたMCをクリック
→ボタンを押して先に選択したMCの色変更
こういう流れでオケ?
やろうとしてることは可能だと思うけど、具体的にどこで詰まってるの?
たとえば、attachMovieはいったん脇に置いて、
ボタン押下で、選択しているMCの色を変える、ということはできる?
800 :
797 :2009/11/05(木) 13:54:37 ID:cUg0AiLY
>>797 様、素早い返答ありがとうございます。
実は、『ボタン押下で、選択しているMCの色を変える、ということ』ですが、
その部分に関しても、上手くいっていないです。
よろしければ、引き続きご助力をお願いいたします。
801 :
797 :2009/11/05(木) 13:57:13 ID:cUg0AiLY
800 名前:797[sage] 投稿日:2009/11/05(木) 13:54:37 ID:cUg0AiLY
>>797 様、素早い返答ありがとうございます。
すみません、
>>800 様の間違いです。
803 :
797 :2009/11/05(木) 14:29:30 ID:cUg0AiLY
>>802様、ありがとうございます。 これから参考URLを見て、やってみます。 またわからない事がありましたら、こちらでお尋ねします。 ありがとうございました。
804 :
797 :2009/11/05(木) 16:12:53 ID:cUg0AiLY
>>802 様、まだいらっしゃいますでしょうか?
上記URLを参考に
1フレーム目(タイムライン上):var color_obj = new Color(Item1);
ボタン :on (press) {color_obj.setRGB( 0xFF0000 );}
として無事にボタン押下でItem1の色を変えることはできました。
上記の(Item1)の部分に変数(?)を使えれば、
『attachMovieで複製→複製されたMCをクリック→ボタン(色の設定済み)を押して先に選択したMCの色変更』
も可能だと思うですが、どのようにASをかいたらいいのでしょうか?
何度もすみません。よろしければ、ご助力ください。
ひょっとしてまさか、Adobeのリファレンスも追いかけないで全部他人任せで作ろうとしてないか? いや質問すること自体は悪い訳じゃないけど
806 :
797 :2009/11/05(木) 16:30:34 ID:cUg0AiLY
>>805 様、他人任せのつもりはなかったのですが・・・
すみません。
書いてくださった『Adobeのリファレンス』などを閲覧して、また尋ねたいと思います。
すみません、また、『Adobeのリファレンス』を教えてくださってありがとうございました。
807 :
797 :2009/11/06(金) 10:30:53 ID:PZxVE4er
先日は不愉快な重いさせてすみません。 独学ですが、以下のASで元MCの色の変更(複数MC)はできました。 mcName = A;←タイムライン上 onClipEvent (load) {theColor = new Color(this);} onClipEvent (enterFrame) {if (this.hitTest(_root._xmouse, _root._ymouse, 1)) {_root.mcName = this._name;}} ←以上、複製したいMC on (release) {_root[_root.mcName].theColor.setRGB( 0xFF6699 );} ←色変更ボタン これに count = 1; ←タイムライン上 on (press) {_root.attachMovie("A", "A"+_root.count, _root.count);} on (release) {_root.count++;} ←attachMovieのボタン として、複製したMCもボタンで色を変更したいのですが行き詰ってしまいました。 よろしければ、ご助力いただけないでしょうか? よろしくお願いします。
>>807 独学えらいっす。
さて、onClipEventで書いたASはattachMovieには反映されないと思うんで
フレームアクションにする必要があるんじゃないかな。
さらに、onClipEvent(enterFrame)でhitTestを無駄に走らせるよりは
MovieClip.onReleaseかonPressあたりを使ったほうがいいように思います。
その場合は、オリジナルのMCシンボルの第1フレームに、こんなふうに書くことができます。
theColor = new Color(this);
this.onRelease=function(){_root.mcName=this;}
で、クリックした時点で_root.mcNameにはクリックしたMCへの参照が
入ってるので、色を変更する時には
on (release) {
_root.mcName.theColor.setRGB(0xFF6699);
}
でいいはず。
809 :
797 :2009/11/06(金) 16:15:11 ID:PZxVE4er
>>808 様 ご回答ありがとうございます。
『onClipEventで書いたASはattachMovieには反映されない』など、いろいろな決まりがあるのも
知りませんでした。
帰宅後、内容を理解しながら進めていこうと思います。
本当に、ありがとうございました。
810 :
Now_loading...774KB :2009/11/06(金) 18:11:45 ID:pWWXWmwf
flexもこちらで良いでしょうか?
本当に初歩でもうしわけないのですが、なぜ、これで実行すると
1120: 未定義のプロパティ qwerty へのアクセスです。
とエラーが出てしまうのでしょうか、解決法が分かりません…
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute">
<mx:Script>
<![CDATA[
public var qwerty:String;
qwerty = "aaa";
public var asdfgh:String = "bbb";
]]>
</mx:Script>
</mx:Application>
>>810 普通に考えてどういうスコープ解決になってるのかわからない
てか、こんな感じに宣言フィールドと代入を同じ場所に同時に置いてもいいの?
>>811 すみません、functionでやらないと駄目なんですね
ありがとうございました
813 :
Now_loading...774KB :2009/11/06(金) 19:53:41 ID:pWWXWmwf
また質問させていただきます。
下記のxmlファイルを読み込むプログラムを実行すると下記のように先ほどと同じエラーが出ます。
1120: 未定義のプロパティ completeHandler へのアクセスです。
1120: 未定義のプロパティ loader へのアクセスです。
ちなみにこれは変数名など変えているだけで、それ以外はactionscriptの本に書いてあるものと変わりません。
flexで使うために何か変えなければならないのでしょうか? 構文ミスはないと思うのですが…
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " layout="absolute">
<mx:Script>
<![CDATA[
public var testxml:XML = new XML();
public var xmlurl:String = "test.xml";
public var request:URLRequest = new URLRequest(xmlurl);
public var loader:URLLoader = new URLLoader(request);
loader.addEventListener(Event.COMPLETE,completeHandler);
public function completeHandler():void {
testxml = XML(loader.data);
}
]]>
</mx:Script>
</mx:Application>
>>813 少しは自分で調べろよ
本当にわからないときだけ質問しろ
816 :
Now_loading...774KB :2009/11/06(金) 20:29:36 ID:pWWXWmwf
>>814 調べました。
自分でも
>>810 はひどかったと反省していますが、
これに関しては今日、パッと分からないため、質問したのではなく、
前々から本を確認しましたし、色々ググって検索をしましたが、
なぜ、そのまま流用できないのか分かりません。
>>815 すみません、わからないんです…
それと失礼、importをここでは書き忘れていましたが、それを加えても駄目なんです
<![CDATA[
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.*;
public var testxml:XML = new XML();
これで足りると思うのですが…
>>813 「Flex creationComplete」とかググると勉強になると思うよ
Flex絡めるとASだけの場合とは微妙に違うから結構面倒なんだよな、ここら辺
>>813 >>810 と同じ。問題の要点を考えてくれ。わかってないないならわかりましたと言わないでくれ。
public から始まるそのフィールドの宣言と、宣言されたその変数を同じ高さで使ってる。
そのCDATAの領域は、AS3で言う public class... の内側と同じになってる。
つまりメンバ変数の宣言か、メンバ関数の宣言しか書けないと思え。
さっき上で自分で function と言ってなかったか?
もうついでに書いとく。こんなの入門初日にやる話だ。 AS3でのソースの構造は、 パッケージスコープの宣言 { インポートの指示 クラスの宣言 { メンバ変数の宣言 メンバ関数(メソッド)の宣言 { 〜内容〜 } } } で、mxmlの例の領域は上図で言うクラスの宣言の内側(が、もうちょい柔軟になったもの)だ。 エラーになる理由は、上図の『内容』が飛び出してしまってあらぬ場所に書かれているから もう一度自分が書いた内容の『形』を見直して、これ以上の詳細はリファレンスを調べろ
>>821 つーか、全部自分の頭だけで考えようとしてるじゃね?
コーディングは簡単なサンプルを多数入手して、それらをイジクリまわして
修得するのが良いと思う。
そうすれば、どのパラメーターが&どの関数がどういう役割を果たすかが分かる。
>>822 アドバイスありがとうございます。
一応、今は本に載っている奴やネット上のを持ってきて改造しています
最初はそんな感じだったのですが、無理だと思いましてw
確かにサンプルから学べることは大きいと思います。なかなか理解できないところもありますが。
でも、flexの情報ってあまり無いのでflexで使うために色々手こずっています。
単にプログラミング自体初心者というのが大きいと思いますが…
>>823 それならとりあえず Flex固有の部分は置いといて、今わかり得る範囲で
まずはプログラミングに慣れて徐々に範囲を広げてくといいと思うよ。
それこそ変数一つ、条件分岐のIF文てどんな時使うの?から始まって繰り返し処理や配列のような
Flash/Flex以前のプログラミングパラダイムを消化しつつ、せっかくだから
絵を動かしちゃおっかな〜って感じでトライして行くと気づいたら色々身に付いてくる。
>>822 も言うように既存サンプルを参考にしつつ理解しながらつぶしていければ
世界はどんどん広がる一方だからがんばれ
俺も今Flexに手を出してるけど、何か疑問が生じたら「Flex ○○」でググってたいてい解決してるよ 基本的には公式の言語リファレンスとヘルプが頼りだが、先駆者も結構いるし
Flexは結構ヒットするよね。 mxライブラリをAcstionScript風に書こうとして結構嵌るけど。
FlexじゃなくてFlashオーサリング+AS3から始めた方がいいんだろうけどFlash高いからなあ。
俺もFlex初心者だけど、Flexについては
>>818 のヘルプがなにげにいいから助かってはいる。
最初から読んでいったらそれなりに理解できると思う。
この後は和書にいい本が無いので、オライリーの洋書クックブックに手を出そうかと。
AS3とFlexのね。
初心者は黙ってサンプルソースからオリジナルを作りなさい。 サンプルソースを参考に一から作ろうとするな。
829 :
Now_loading...774KB :2009/11/07(土) 05:33:52 ID:PhPoaQrp
CS4,AS3.0,WinXP-Proで、dispatchEventの質問です。 ドキュメントクラス(親)とMCにリンケージしたクラス(子)を用意し、子から親へ イベントの送出をしたいのですが出来ないです。 記述は、import部分を省略すると、 親側(受信する) public function AS_dEvt_01() {// ドキュメントクラス名:AS_dEvt_01 addEventListener("Child01_Evt", child01); } private function child01(Evt:Event):void { try { trace("受信しました"); } catch (errorEvt:Error) { trace(errorEvt.message); } } 子側(送信する) public function Sender_01() {// public class Sender_01 extends Sprite buttonMode=true; addEventListener(MouseEvent.CLICK, onClick);//MCをクリックして実行 } private function onClick(mouseEvt:MouseEvent) { try { trace("送信します"); dispatchEvent(new Event("Child01_Evt"));//自作イベント "Child01_Evt" を送信 } catch (errorEvt:Error) { trace(errorEvt.message); } } 上手くいけば、親側で「受信しました」と出力したいのですがエラーも何も現れません。 Webや本で調べましたが原因が分かりません。どうすれば良いでしょうか?
addEventListener("Child01_Evt", child01); ↓ 子.addEventListener("Child01_Evt", child01);
>>830 に追記しておくと、イベントルーティングの要点は、
「"誰が"起こしたイベントを」「誰が聞いているか」って事。
それを正しく明示するのがポイント。
「送出しちゃえば誰かが勝手に見てくれる」訳じゃないって事
>>829 あと、
バブリングしないからするようにしてやる
dispatchEvent(new Event("Child01_Evt", true));
親に送出
parent.dispatchEvent(new Event("Child01_Evt"));
833 :
829 :2009/11/07(土) 15:18:25 ID:6OH43FNJ
>>830-832 有難うございます。
試しましたが、832さんの方法で上手くいきました
830さんの記述では、子.addEventListener("Child01_Evt", child01); の
親側での子の定義と参照方法が分からなかったです。
(MCのインスタンス名を使っても駄目でした)
>>833 Flashの世界ではインスタンスとか参照って言葉が、似てはいるけど異なるニュアンスで
使われてるから説明しづらいけど、
要は親側のインスタンスに子の参照を外から渡しといてやらねばわかりようがありません
あるいは thisからroot見て辿れなかったっけ
この辺は他言語使ってる人には普通に伝わる話なんだが、携帯でサンプル書くのは辛い
なんか変な言い方した俺 親に対して外から子(にしたい)インスタンスの参照を渡して、 親はそれを操作するって事
>>833 子はFlash上に配置済みなんでしょ?
その子のインスタンス名をプロパティパネルで自分で設定できているなら
親からそのインスタンス名でアクセスできるよ
837 :
Now_loading...774KB :2009/11/08(日) 00:46:22 ID:AnXmI2Dq
CS4 AS2.0でサーバーのCSV読み込みから条件分岐をしようとしてます またCSVは不規則に更新されるので定期的に読み込み直す仕様です まだサーバーのほうから読み込みではなくテスト段階で、同じ階層から読み込みですが function move(){; var textCsv:LoadVars = new LoadVars; textCsv.onData = function(data){ var itemList:Array = data.split(","); trace(itemList[3]); } textCsv.load("data.CSV") } setInterval(move,10000); if(itemList[0]>0){ stop(); } CSV内データ→1,2,3,4,5 これで条件内の命令実行してくれません… ほかの命令(gotoとか)も試してみましたがだめでした また、setintervalも指定した時間待ってくれるのは最初の一回だけで、 そのあとはものすごい勢いで出力されていきます どこが間違ってるんでしょうか? 後、サーバーから複数CSVを検出して読み込んで配列に入れるとかできないでしょうか ご存知の方やいい方法があったら教えてください
>>837 とりあえず無名関数の中で宣言されてる変数を外のif文が見てるのが無意味なのはおいといて、
その一塊自体フレーム中で生きてるの?
あるいはループでなんども再定義されてない?
>>837 条件分岐がうまくいかないから、まずはitemList[0]の値や型がどうなってるか
traceしてみては?
しかし、なんかASごちゃごちゃになってないか?
そもそもなんで、onData内でloadしてんの?
if判定は外に出ちゃってるけど、これで繰り返し実行されてるの?
それともフレーム遷移で繰り返し実行してるのか?
だとしたらそのたびにsetInterval()されてる気もするが。
あと、サーバから複数のCSVを「検出して」って表現が怪しい感じだけど、 単に複数回ロードするなり、あるいは何らかの規約を設けてまとめてロードすればいいのでは 例えばXMLの中にn個のノード作ってそれぞれにCSV書かせて受け取るとか
あほんとだ。よく見たら無名関数の中でロードしようとしてるww ロードについてはこの内容だと永遠に実行されないだろこれ
出た出たw
843 :
Now_loading...774KB :2009/11/08(日) 01:28:41 ID:AnXmI2Dq
>>838-841 返事ありがとうございます!
うぬぬ頭が沸騰しそうです…
兎に角ループ場所がおかしいみたいですね
if直前にtraceいれたら数字出ませんでした
関数の中だけでしか有効じゃないんですね…
サンプルコードを弄くって組んでるので正直滅茶苦茶だと思います…
844 :
Now_loading...774KB :2009/11/08(日) 16:39:13 ID:sy4qJ6yf
5秒おきとか10秒おきとか30秒おきとかに効果音を出したくて、 for (i = 0 ; i < STable.length ; i++) { myID = setInterval(SoundOut,STable[i]); } と書いたのですが、SoundOut関数が1回しか実行されてません。 こんなことは出来ないのでしょうか。
setIntervalのリファレンスとJavaScriptのでいいからサンプルと、 あとすぐ上の方のレス追いかけてみるといい
844です。スミマセン、関数側の問題でした。ちゃんとテーブル数分実行されました。
fpsは、画像を描画の回数なのか、処理を行う回数なのか どっちなのかに?
>>848 ありがとう
イベントって入力の検知する間隔?
内部的に onEnterFrame = function() { イベントを検知 リスナーを実行 再描画 } みたいな感じ と勝手に予想してみた
単純に描画フレーム数だと思っていいかと 処理は描画の前に行われて、イベントなど描画途中の変更は次のフレームの 初めまで待たされる 強制的に描画反映させるのがupdateAfterEvent()
fps = frame par second なので単純に1秒辺りに描画完了可能なフレーム数だね 1秒間に何回描画が完了できるかの値 なので、描画以外の処理があまり走ってない場合と走ってる場合で、結果が変わる場合もある そんな瞬間的な値
タイマーで一度だけ処理して自分自身(タイマー)を削除するにはどうすればいいでしょうか
setTimeout()
855 :
Now_loading...774KB :2009/11/10(火) 17:15:50 ID:xvLIZey8
上の書き込みでFlexでxmlの読み込みなどを質問した者です。
ブラウザによって表示に影響がでることはあるのでしょうか?
http://www.adobe.com/jp/devnet/flex/quickstart/handling_events/ 先週、こちらのプログラムを改造してxmlを読み込むものを作り確かにfirefoxで動作を確認しました
しかし、今週、何があったのかfirexoだと表示されなくなってしまいました。
パソコンの環境かと思い、別のPCのFlexでも試したのですが、同じように表示されません。
ちなみにサーバーにアップロードしてswfにアクセスすると問題なく表示されます。
私が調べたところではローカルでIE7,Chromeでも表示されません。Opera、Safariでは表示されます。
次の書き込みにプログラムを書き込みますのでもしよろしければ試していただけると幸いです。
856 :
Now_loading...774KB :2009/11/10(火) 17:16:36 ID:xvLIZey8
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml " horizontalAlign="center" verticalAlign="middle" width="300" height="200" creationComplete="creationCompleteHandler(event);">
<mx:Script>
<![CDATA[
import flash.events.MouseEvent;
import mx.events.FlexEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
public var xmltest:XML = new XML();
public var xmlurl:String = "test.xml";
public var request:URLRequest = new URLRequest(xmlurl);
public var loader:URLLoader = new URLLoader(request);
public function creationCompleteHandler(event:FlexEvent):void {
//myButton.addEventListener (MouseEvent.CLICK, clickHandler);
loader.addEventListener(Event.COMPLETE,clickHandler);
}
public function clickHandler ( event:Event ):void {
xmltest.ignoreWhitespace = true;
xmltest = XML(loader.data);
myLabel.text = xmltest.name.toString();
}
]]>
</mx:Script>
<mx:Panel title="My Application" horizontalAlign="center" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
<mx:Label id="myLabel" width="180" fontWeight="bold" fontSize="24"/>
<mx:Button id="myButton" label="Click Me!" />
</mx:Panel>
</mx:Application>
857 :
Now_loading...774KB :2009/11/10(火) 17:17:26 ID:xvLIZey8
test.xmlの内容 <?xml version="1.0" encoding="utf-8"?> <test> <name>test</name> </test>
858 :
Now_loading...774KB :2009/11/10(火) 17:30:33 ID:xvLIZey8
>>854 ありがとうございます
setTimeout()は削除しなくても勝手に消えてくれるのでしょうか
861 :
Now_loading...774KB :2009/11/11(水) 07:44:02 ID:LnSSoBKe
フラッシュでアナログ時計を作ってるのですが、 下のスプリクトでは短針が30度ずつしか回転しません。 5度ずつ回転させるにはどうすればよいですか? var d = new Date(); hour_mc.rotation = ( d.hours / 12 )*360; minute_mc.rotation = ( d.minutes / 60 )*360; second_mc.rotation = (d.seconds / 60 )*360;
Scriptなw 勘違いしてるかもだけど、度で良かったんだっけ?ラジアンじゃなくて
>>861 10分置きに5度ずつってことでいいのかな?
たぶんこんなん
hour_mc.rotation = ( d.hours / 12 * 360 ) + ( Math.floor(d.minutes / 10) * 5 );
864 :
Now_loading...774KB :2009/11/11(水) 16:14:13 ID:LnSSoBKe
Windowsの文字入力中のカーソルキーのように左右キーを押しっぱなしにすると一瞬引っかかりその後滑らかに進んでいくようにするにはどうすればよいでしょうか 標準では引っかかりの時間が長すぎるので自作したいと思っています。
ロジック丸投げ質問か 一度ひっかからない処理を書いて、初回時には任意時間の間だけ実際に行いたい処理を スキップしとけばいいんじゃね?
正解書いてしまうとあなたの自作にはならないので考え方を書いておくと、 処理は2つ。例えばカーソルの移動を想像した時、一つは 「一度キーが押されたらそれが離されるまで状態が継続される」ロジック。 もう一つは「押された状態、にある時にカーソルを移動させるロジック」 前者と後者の間にスキップが無く直結してる時、ひっかかりは無くするっと動いてしまうから、 押下直後から一定時間過ぎるまでは後者のロジックをスキップすればいいって事 これはあくまで俺の方法なので他にもっとスマートなの方法もあるかもしれないが
おかげさまで解決しました
ASの質問ではないのでスレ違いかとは思いますがわかる方おられれば教えてください FlashDevelop3.0.4(日本語化)+FlexSDK3でコーディングしています 毎回ではないのですが保存して開いたとき、コメントブロック間に 入れていない改行が入ってしまうときがあります @paramの上下が多いですがそれ以外の行もなることがあります 改行が入っているときは別のテキストエディタで開いても改行されているため 実際改行コードが入っていると思います UTF8形式、改行はCRLFの設定になっています どなたか同様の現象が出て改善されたかたおられましたらご教授よろしくお願いします
赤青緑〜と色をグラデーションさせるにはどうすればよいでしょうか ランダムに表示するのは簡単に出来るのですが・・・
>>870 AS3かな?
ちょっとややこしいけど
http://oshige.com/flash/as3note_cs4/2009/07/post-30.html var s: Sprite = new Sprite();
var m: Matrix=new Matrix();
m.createGradientBox(1000,200,0,0,0);
s.graphics.beginGradientFill(GradientType.LINEAR, [0xFF0000,0x0000FF,0x00FF00], [1,1,1], [0,127,255], m);
s.graphics.drawRect(0,0,1000, 200);
s.graphics.endFill();
addChild(s);
5つの数値が入っている配列の中で一番大きな値と小さな値を取るのですがifで比較しながらforで回すしか方法はないでしょうか? 他にも方法があれば教えて下さい
そんな都合を満たす方法は基本的にそれだけ 逆に一発でそんな事が出来るのはExcelぐらい
配列をソートして頭と尻を取ればいいだけじゃね?
配列ソートって結局コンパレータ書かなきゃいけないからfor回しとあんま変わんなくね?
FlexSDKを使ってAIRアプリを作っています 質問なのですが、socketを利用してそこらへんのサイト(googleとか)に接続することは可能でしょうか
55656776という数値があり1つずつ比較するプログラムを作っています 一度5が見つかるとその後の5はスキップするように比較用の変数databaseを作り一度見つかった数値をdatabaseに入れindexOfで比較を行っています indexOf自体の速度はどの程度なのでしょうか、かなり頻繁に使う関数なので重さが心配です
>>877 オブジェクトを使ったほうがいいよ
var cache: Object = {};
if (!cache[number]) {
cache[number] = 1;
// 処理
}
>>878 おお!そう言う方法もありますね
それでやってみたいと思います!ありがとうございました
>>876 作ってるならテストコード書いて試せばいいだけでは
Air はわからないが、前にローカル実行させた swf では上手く行った
Web公開した物は自ドメイン外はNG。間に CGI挟んで実現したけど
881 :
Now_loading...774KB :2009/11/14(土) 12:59:11 ID:D37KSoP5
ボタンを押して、「文字の色や、背景色が変わる」っていうのをどなたか教えて頂けませんか?
>>881 AS3だと
btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick( event: MouseEvent ): void
{
// 色変更処理
}
文字色の変更方法は「AS3 テキスト 色」とかでぐぐってくれ
背景色は、そもそも背景がないので自分で作る
function drawBg( color: uint ): void
{
}
>>881 みすった
function drawBg( color: uint ): void
{
graphics.clear();
graphics.beginFill(color);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
graphics.endFill();
}
こんな感じの関数用意して
onClickのところで
drawBg(0x000000);
シンボルなどをそのまま表示させアニメーションさせるよりも全てのシンボルを1つのビットマップに落としてから表示させるほうが処理が軽くなるのでしょうか? 良く見た目に重そうな処理をしているFLASHはビットマップに落としてるものが多いので・・・
>>884 アニメーションが位置移動だけなら
cacheAsBitmap=true
したほうが良い
複数のシンボルをひとつのビットマップに出来るんなら、
たぶん例外なくそっちの方が軽い
>>880 一応作ってみたんですが、動かなくてやり方が悪いのかと思って質問しました
Airもローカルなので希望が見えてきました
頑張ってみます
>>887 基本的に
・オブジェクトは少ないほうが良い
・オブジェクトはビットマップの方が良い
・位置移動だけならcacheAsBitmapでも可
なので、やりたい事が一枚のビットマップで実現できるならそれに越したことはない。
AS3です! 入れ子になっているMCのグローバル座標が取得できません・・・ localToGlobal関数を調べたんですが、どうも理解できずに苦しんでおります 以下は、mc_parentの中のmc_childの座標を取得したい、という場合ですが var lp:Point = new Point(mc_parent.mc_child.x, mc_parent.mc_child.y); var gp:Point = mc_parent.localToGlobal(lp); trace(gp.x, gp.y); とやると「条件は未定義であり、プロパティがありません」と出てしまいます・・・
>>889 localToGlobalの使い方は別に間違ってないから、エラーは別のところで出てると思うよ
エラー内容に行番号が出てると思うから、それ確認してみ
>>890 できましたあー!
ありがとうございまっす
アルファ有りのFLVを表示させるのとアルファ有りのPNGでパラパラアニメのように表示させるのではどちらの方が負荷が高いでしょうか
AS3でMovieClipの特定のフレームにSpriteを放り込みたいんですが、どうすれば良いでしょうか?
ASでフレーム制御はできないだろうから、タイムラインで区切ってラベル付けるなりして 特定するしかないんでない?
タイムラインの再生とか停止、ジャンプはできますよね?? すべてAS3で完結させたいんですが... Flashなどは使わず ラベルを指定してそこにSpriteを入れるということでしょうか?? addChildAtだとレイヤーが変わるだけですし...
>>893 MovieClipを継承したクラス内のENTER_FRAMEイベントハンドラ等で現在のフレームカウントを見ておいて、
それが特定のフレーム数になった時、そのSpritをadd
_root.attachMovie("mc","mc",1); で作成されたムービークリップにクリックイベントなどを適用する場合どうすればいいでしょうか?
>>898 AS2なら、eval("_roo.mc").onClick = 関数
で出来たような。他の方法もあったかもしれんが。
AS3でも要はインスタンス特定して addEventListener すればおk
ライブラリのビットマップ画像を直接ビットマップデータに書き写すことは出来るでしょうか
901 :
Now_loading...774KB :2009/11/15(日) 12:24:43 ID:17ibCnN6
質問ですが携帯で電波や電池状態で画像を動かすようには出来たのですが 同じような感じで充電状態に動かそうとしても画像が途中で止まってしまう上に 動いた後に停止入れてるにも関わらず繰り返してしまいます。 解決策はありますでしょうか?
>>898 AS2なら、_root.mc.onRelease=function(){}とかだね
イベントハンドラにデータを送りたいと思い、このようなコードをグーグル先生に教えていただきました private function someHandler(str:String):Function { return function(me:MouseEvent):void { FlashConnect.trace(str); }; } someObject.addEventListener(MouseEvent.CLICK, someHandler("hoge")); 見事hogeと表示されたのですが、構文が理解不能です・・・ どのような理屈で動いているのでしょうか
>>903 戻り型をインラインで定義してるだけ
= addされるハンドラ用の関数の参照を someHandler が返してる。
someHandlerは文字列を受け取り、関数の参照を返す。
返される参照はインラインでFunction型として定義されていて、
そこではイベント時に渡されるイベント情報を受け取る定義があって
(me:MouseEventと書かれているブロック=いわゆるハンドラ関数そのもの)、
その中でadd時に渡された文字列をtraceしている。
この書き方のポイントは、イベントオブジェクト以外の何らかの値をハンドラに別に渡したい場合の方法。
わかりやすく書きたければ、もっとシンプルに thisで参照できるプライベートメンバにもたせときゃいい
初めて書くのなら、その例の書き方はちょっとトリッキーなのであえてまねする必要は無いよ
OOP的に言えば意味合いが変わって来るんだが‥ 例えば
private str:String = "hoge";
private function someHandler(me:MouseEvent):void {
FlashConnect.trace(this.str);
}
someObject.addEventListener(MouseEvent.Click, someHandler);
との違いを良く比べてみて
これは
>>903 に書いた例
あと連投済まないが、もしもイベント時に独自な値をハンドラに渡したかったら、 自分で Eventクラスを継承した専用クラスを書いて dispatch で飛ばすって方法がある その方が意味的にも理に叶っていてすっきり簡単だからお勧め
>>904-906 詳しくありがとうございます。難しいですね
addの時に結局、いつもの形のイベントハンドラが渡されてるんですね
渡されたstrがどこに保持されてるかが分からなくて不安ですが、インライン関数を勉強すれば理解できそうです
dispatchを書ければいいんですけれど、具体的にやりたいことはmx:HTMLのhtmlTextのなかのリンクをクリックしたときなので、どのように拡張していいやら・・・
>>907 strはaddしたタイミングで確定され、その瞬間における不変な値として引き渡されてる。
※なので本ソースの"hoge"を任意に動的に変更する必要があったら、文字列直接でなく
間に別のオブジェクトを挟む必要がある。これはオブジェクトへのポインタ値は不変だけど
メンバの値は関係ない為
mxmlの中で既存のイベントに絡めたい場合には、冗長だけどそのハンドラ内から再度独自イベントを
dispatch するか、上の this の例みたいに単に別に用意しておいて自分で見てもらう形の方がいい。
特にOOP的な作法に拘りがなければ、その方が手っとり早い
×本ソース ○元ソース
全く動かさなくてもインスタンスって表示すれば表示するほど重くなるのでしょうか
>>910 自分で何もしなくても表示処理は常にある分だけ走るので重くなると言えば重くなるよ
インスタンスって生成した状態とコンテナに入れたときとで重さってどのくらい変わるんだろう??
環境はCS3 シーン分けをして、最初のシーンで宣言した変数を別のシーンでも使いたいのですが、これはシステム的に可能なのでしょうか。 一方通行なら一応は可能みたいなのですが、gotoAndPlayでシーンの最初に戻ると操作が固まるなのの症状が出たりしています。
現状のスクリプト試作分 /*シーン1*/ /*変数宣言*/ /* gotoAndPlay("シーン2", 1); などと入れると、エラー1067(暗黙の型変換)が出る*/ var bunki:int= 0; /*シーン2*/ /*変数処理*/ function arut(e) { play(); } function brut(e) { bunki++; play(); } stop(); aka.addEventListener(MouseEvent.CLICK, arut); ao.addEventListener(MouseEvent.CLICK, brut);
/*シーン3フレーム1*/ /*フレーム3から戻ってくると、at1が効かなくなる*/ stop(); function at1( e ) { gotoAndPlay(5); } function at2(e) { gotoAndPlay(3); } mizu.addEventListener(MouseEvent.CLICK, at1); midori.addEventListener(MouseEvent.CLICK, at2); /*シーン3フレーム3*/ /*フレーム1に戻る*/ stop(); mizu.addEventListener(MouseEvent.CLICK, rp1); function rp1( e ) { gotoAndPlay(1); } }
/*シーン3フレーム5*/ /*次シーンへ*/ stop(); mizu.addEventListener(MouseEvent.CLICK, esp1); function esp1( e ) { play(); } /*シーン4フレーム1*/ /*シーン3フレーム1に同じく、戻ってくると効かなくなる*/ var bunkis:int=bunki; stop(); function rut1(e) { switch (bunkis) { case 0 : gotoAndPlay(3); break; case 1 : gotoAndPlay(5); break; } } midori.addEventListener(MouseEvent.CLICK, rut1);
/*シーン4フレーム3*/ stop(); midori.addEventListener(MouseEvent.CLICK, tan1); function tan1( e ) { gotoAndPlay(1); } /*シーン4フレーム5*/ stop(); midori.addEventListener(MouseEvent.CLICK, tan2); function tan2( e ) { gotoAndPlay(1); }
>>913 つ System.totalMemory
>>914 久々の丸投げかw
どうせならFlaファイルごとUpしる。
CS4 AS3.0でsort()についてなのですが 下記のコードだと結果が異なる理由を教えて貰えないでしょうか。 var hoge:Array=['black','BLack','blue','red','reD','Green','white']; var hoge2:Array=['black','blue','red','BLack','reD','Green','white']; trace(hoge.sort(1)); //出力:black,BLack,blue,Green,reD,red,white trace(hoge2.sort(1)); //出力:BLack,black,blue,Green,red,reD,white 宜しくお願いします。
>>920 大文字小文字が区別されてない。
そして同じ物と見なされた要素の登場の順については、内部の都合としか言えない(比較と置換の結果)
てか区別されなかったのかww ほんとかよww
>>913 Flash用語と微妙に異なるただのクラスから生成されたインスタンス‥
例えば Spriteを継承した何らかのクラスを new して得られるインスタンスって意味なら、
多分 add されるまで描画処理は走らないだろうから、コンテナ‥ Flashが管理する表示用コンテナ
に add した後よりは遅くない。
具体的な時間差については内容によると思うので自分で計測しないとわからない
>>914-918 携帯で見るのが辛いのでちゃんとソース見て無いが、
単に別シーンの何らかの変数を見る事は出来るか?って話なら出来るはず
ちゃんと対象を特定して別のシーンの何かを一つづつ trace して試していけば誤りは見つかる
注意点はフレーム間をループする時、再定義されてないかだとか、そこら辺。動きを把握して
一個一個確認して
タイマーに引数を設定するには無名関数を使用するしかないのでしょうか
>>921 内部の都合ですか・・・
こんな配列になる事はまずないんですけど、不安ですね
有り難うございます
良く分かってないから変な事言ったらごめんだけど 引数に1付けてるから sortOptionsがCASEINSENSITIVEになってるんじゃないのかな? 大文字と小文字を区別しないソートを指定するらしい。
>>926 オプションに1を設定する事で、大文字小文字関係なしなのは理解してるんですが
配列に格納されてある「'BLack'」の順番だけが異なる配列のソート結果が
何故こうも異なるのかというのが不思議で。
>>927 すいません。激しく勘違いしてましたね…。
私もちょいといじってみたけどよく分かりませんでした。
>>927 不安になる必要は無い
中の都合ってのは何も訳の分からない事やってる訳じゃなくて、ロジックの副産物的な結果って事
どうしても気になるならクイックソート、シェルソート、ポゴソート等でググるなどして、
試しに sort処理そのものを自分で書いて動きを確認してみるといい
「ロジックの都合」の意味が多分わかる。
中の単品の比較処理の際にロワーケースに揃えて確認も忘れずに
ASって言うよりプログラミングの基礎的な話になってくるけど
930 :
BON :2009/11/16(月) 21:03:07 ID:HfaXZVoO
AS2でクリックしたボタンをHITの状態にしておきたいときのアクションの方法を教えてください。
933 :
BON :2009/11/16(月) 21:27:49 ID:HfaXZVoO
>>932 返信ありがとうございます。ちなみにMCを作った後はどういう処理をすればよいのでしょうか?
初心者なものですみません。
>>933 MCのタイムラインにHIT状態のフレームを作る。
そのフレームにhitとか適当なラベルをつけとく。
クリックで、MCにgotoAndStop("hit")を実行させればいい。
MCのクリック設定は
>>902
flvをゲームのエフェクトとして使用することは出来るでしょうか パーティクルでリアルタイム演算しても良いのですが軽さを重視したいので
>>935 単に動画を Sprite のように表示したいって話なら出来るが‥
ゲームのエフェクトって表現が何を指してるかわからないので何とも言えない
あと動画は全般的に軽くは無い。何と比較するかによるが、
重い場合がありこそすれ、そもそも超軽量!って類の物じゃない
>>928 いえ、こちらこそ変な部分を気になって質問してしまいすみません
>>929 ・931
まさかこんなに掘り下げたアルゴリズムが関係してるとは思いませんでした。
本当に有り難うございます。
>>936 爆発などのアルファ値ありのエフェクトです
凝ったカットインやバンクとして使うなら兎も角、軽さを求めてるならflvって選択肢にはならない。
940 :
Now_loading...774KB :2009/11/17(火) 20:22:30 ID:Typ17tMX
質問です。 MovieClipにTextFieldをaddChildするにはどうしたらいいでしょうか?
>>938 >>936 や
>>939 参照
動画がどうやって再生されてるかさえ知ってれば
多分選択肢から速攻で外れる。実験はむしろしていいとは思うけどね
>>940 そこまで自分で書いてて何故出来ない?
addした後に何か問題あったって話か?
var t: TextField = new TextField(); t.text = "ggrks"; mc.addChild(t);
>>939 ,941
ありがとうございます
flvは圧縮された動画なので重いことは重々承知していたのですがリアルタイムレンダリングとどちらが早いか気になったもので・・・
実際に実験してみると再生前に一瞬カクついて使い物になりませんでしたorz
>>943 動画の考え方を応用して、自作でアニメーションクラス作るって手もあると思う
逆転の発想と言うかむしろ正攻法と言うかって感じだが
つまり、小さい flv でも用意しようとしたって事は何らかの動画を用意できるって事だろうから、
それを例えば40枚くらいの png にでもして、MovieClipを継承したクラスを作り、
中で ENTER_FRAME 毎に1コマづつ表示するなどすればいいんじゃないかな
945 :
940 :2009/11/17(火) 22:01:56 ID:Typ17tMX
>>942 ありがとうございまっす
mc.をどこに付けるかわかりませんでした
mc.t.textとするものとばかり思っていました
まさかaddChildに付けるとは!素人すぎてすみません
>>945 フォーマットというか文字の大きさの指定とかは大丈夫?
>>944 その方法で行ってみようと思います
やっぱり手動で1フレームずつ配置していくしか方法はないですよね
>>947 俺なら配列に入れて回す等するが、別にFlashのGUIで1フレームづつ貼っていっても
いいかもしれない
後の都合を考えてやりやすいように
>>948 配列に入れる場合やっぱり識別子を設定しないといけませんか?
>>949 俺はFlashDevelopで何でも作る人なので
手順や考え方が違うのかもしれないが、
例えばクラスの中でメタを使って、埋め込み画像を取り込んで配列化したり、
別途動的にロードしたりする
Flash製品でライブラリから引くなら必要なんじゃない?
俺はFlashMX以降アップデートしてないので知らないが
>>947 連番画像を書き出せるなら、連番で勝手に全部読み込むよ
>>950 FLASH CS3を使っているのですが正直フレーム自体使ってないので乗り換えも検討してみます
>>951 01.png02.png03.pngとかでも大丈夫でしょうか
フレームっていうかタイムラインですね
>>952 そう、そういう連番ファイルにしておいて、01.pngを読み込むと
「残り全部読み込むか?」みたいなメッセージが出る。
オケってすると、連続したフレームに連番通り画像が配置される。
たしかにタイムラインまったく使わないなら、CS3いらないかも。
>>954 おおお!出来ました!ありがとうございます
956 :
Now_loading...774KB :2009/11/18(水) 01:15:22 ID:m7EkbpZ4
初歩的な質問ですいません。 this.tween = new Tween(mc, 'x', Elastic.easeOut, 0, mc.x, 3, true);の第3引数にある「Elastic.easeOut」ですが、 ActionScript 3.0 コンポーネントリファレンスガイドのElasticのメソッドの詳細に記されている public static function easeOut(t:Number, b:Number, c:Number, d:Number, a:Number = 0, p:Number = 0):Number に値(引数)を予め設定することで同じElastic.easeOutでも Tweenした時の挙動を調節できるのでしょうか? 設定できるのであればどのようにすればいいのですか? 助けてくださいm(_ _)m
957 :
Now_loading...774KB :2009/11/18(水) 03:25:07 ID:vQUpszZ4
FLASH OOP for ActionScript 3.0 (著:FLASH OOP Japn,クスール)翔泳社 で質問です。 p297の上の方で、 「色の[0x6a987b]をバイナリで表現すると、[00][6A][98][7B] になり、 先頭の1バイトは使われません」 とありますが、先頭の1バイトはアルファチャンネルじゃないのでしょうか?
958 :
Now_loading...774KB :2009/11/18(水) 07:03:55 ID:0vxGoxS0
>>957 省略したら使われない
アルファチャンネルも使いたいなら
0x006a987b
としっかり書かないとだめ
959 :
Now_loading...774KB :2009/11/18(水) 16:17:36 ID:1jFwv7B6
960 :
Now_loading...774KB :2009/11/18(水) 17:27:11 ID:hpCByArH
質問じゃなくて相談です。 みんなで協力しあってFlashゲームを作りませんか? 目標はネットで対戦できるドラクエです。
タクティックスオウガならやりたかったけど残念
962 :
Now_loading...774KB :2009/11/18(水) 17:38:33 ID:hpCByArH
>>961 タクティクスオウガの要素も取り入れます。
てか専用スレ立てたかったけど立てられなかったのでどなたか親切な方お願いします。
スレタイ:Flashゲームを作ろう!
内容:みんなで協力しあってFlashゲームを作りませんか?
目標はネットで対戦できるドラクエです。
絶対完成しないからやめといた方がいい
>>963 絶対完成させるからスレ立てお願いします。
ちなみにすでにチャットまではできています。
チャットよりもRPG部分のほうが大切だと思うが
>>965 もー!
だからそれを作るためにスレ立てして欲しいんです。
何故一人で作らない?
970 :
Now_loading...774KB :2009/11/19(木) 02:09:01 ID:pil6UDU/
あ
裏で計算を行いながら画面を描画したいのですがタイマーを使ってもカクカクしてしまいます FPSは上限の30のままなのになぜカクカクしてしまうのでしょうか
フラッシュでゲーム作りたい!と思ってFlashDevelopとFlexSDK入れたはいいけど コードがちんぷんかんぷんです。 どこかHelloWorldから解説してくれてるサイトないですか?
AS3でrootにaddchildしたインスタンスをcontainerというインスタンスの中に移動したいのですがどうすればいいでしょうか
>>975 container.addChild(root.インスタンス)
でいいんじゃね?
>>976 普通にaddchildし直すだけでよかったんですね
ありがとうございました
978 :
Now_loading...774KB :2009/11/19(木) 18:40:53 ID:uYSCDtz3
質問です AS3です var xmlRequest:URLRequest=new URLRequest("imageData.xml"); var xmlLoder:URLLoader=new URLLoader(xmlRequest); var imgData:XML; var imageLoader:Loader; var rawImage=String; var imgNum:Number=0; xmlLoader.addEventListener(Event.COMPLETE, xmlLoadeedF); function xmlLoadeedF(event:Event):void{ imgData=new XML(event.target.data); rawImage=imgData.imgge[imgNum].imgURL; imageLoader=new Loader; imageLoader.load(new URLRequest(rawImage)); master_mc.addChild(imageLoader); } で1120:未定義のプロパティへのアクセスとエラーがでます。 何が間違っているか分かりません。 ご指導よろしくお願いします
>>978 var rawImage=String;
ここかな?
エラー行番号からどこか特定できない?
980 :
Now_loading...774KB :2009/11/19(木) 19:25:01 ID:uYSCDtz3
>>979 xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
と出ています。
よろしくお願いします。
xmlLoaderが定義されてないよ xmlLoderと定義されてる
エクスエムエル・ロダー
ロダーの所と
>>979 を直したら出来たな
あと、imgData=new XML(event.target.data);これのnewはいらないんじゃないか
スペースキーをマウスのダブルクリックのように二回連続で押すと関数を呼び出すようなプログラムはどうやってつくればいいでしょうか
985 :
Now_loading...774KB :
2009/11/19(木) 22:27:18 ID:uYSCDtz3 返信遅くなりましてすみません。
>>978 >>981 さんのおかげで出来ました。
ありがとうございます。