ActionScript 誰かが物凄い勢いで解答するスレ 20
1 :
Now_loading...774KB :
2008/07/08(火) 15:08:44 ID:37ODdv7N
2 :
前スレ985 :2008/07/08(火) 15:18:30 ID:37ODdv7N
前スレ
>>1000 に言われて気付きました。
前スレ
>>998 は完全に逆で、ローダーを介してpngを表示した場合が正確なガンマ値を示していて
予めライブラリに読み込んだpngを表示した場合に勝手にガンマ値を補足してるのではないか、という結論に達しました。
混乱させて申し訳ありませんでした。
どっちにしろflashで扱うのを前提としてる場合はphotoshopの[Web用に保存]でのPNG画像の出力は使わない方がイイって事ですね。
http://www.amazon.co.jp/ にあるオススメを表示するフラッシュは、マウスホイールによるスクロールがIEやFirefoxでも出来ると思うんですけど、
これはどういうロジックになっているのでしょうか?
左クリックとかでフラッシュにフォーカスを当てた後もマウスホイールは効きますよね?
もしかしてこれはjavascriptによる後からの制御なのでしょうか?
5 :
前992 :2008/07/09(水) 02:17:48 ID:a4knOvMM
ニコニコ動画はFlashにフォーカスがあたってると、Flash内のスクロールバーの処理にいっちゃうのかな? Youtubeとか他のFlashコンテンツはFlashにフォーカスがあたっていても普通にホイールスタンプやスクロールが出来るけど
あ、確かにyoutubeとかもスクロールうまくいきますね! てことは、特に特殊な処理はしてないのかな・・・? 以前自分でflashを作成したときに、何も処理をしていないとホイール操作がflashに奪われていたため、 amazonの方が特殊な処理をしているのかと考えていたのですが。。。
>>4 wmodeをtransparentにしたらブラウザもスクロールする
10 :
Now_loading...774KB :2008/07/10(木) 22:34:01 ID:E6CbqVPf
papervision3Dをマジにやろうとおもってるんだけど 入門サイトとかそういうのがまったくないんだけど・・・ 良い感じのページあったらおしえてください神様!
11 :
Now_loading...774KB :2008/07/11(金) 09:19:05 ID:hsvAvodI
Flashで用意されてないオブジェクトを作った場合「hoge.」って打ち込んでも メソッド一覧みたいなの出ないっすよね? どうにか出るようにできないんすか! ぐあああ!せめてpapervision3Dにどんなクラスやメソッドがあるかだけでも知りたい! ドコを見ればいいのじゃ!!
12 :
Now_loading...774KB :2008/07/11(金) 09:33:31 ID:d58CVIVj
夏休みかw
わけあってAcitonScriptを覚えなきゃいけなくなり 本屋に行って参考書とか色々見たんですが AcitonScript3.0よりAcitonScript2.0の方が 本の種類も、初心者にもわかりやすそうな本もたくさんあり まずAcitonScript2.0を勉強して、基礎を覚えてから AcitonScript3.0に手を出そうかな、と思ったんですが これってどうなんでしょう? どこかのサイトで、2と3は全然違うって書かれてたの見たんですが 3を覚えたいなら最初から3の本見て勉強した方がいいですか? 2の勉強しても無意味なんでしょうか?
>>15 AS2の勉強してからAS3やり始めたらなんじゃこりゃー!ってなるかもねw
AS3はかなりC#やJavaチックになってるから他のここらへんの言語をやったことあるならいきなりAS3やったほうがいいんじゃないかな
>>15 上に同じくプログラムの経験があるならAS3だけど
覚える時間がなく、早急に何か作らなくてはいけないなら
取りあえずAS2覚えるのもいいと思う、AS3に比べると簡単だし
どの道AS3を覚えなきゃいけないなら、全部とは言わないが無駄になる(基本的な処理方法が変わってくるから)
でも、携帯のFlashサイトを作るなら無駄にはならない
携帯でAS3が使えるのはまだまだ先の話だろうし
18 :
15 :2008/07/12(土) 01:30:44 ID:cu47cFZ2
まじですか…orz 実はとりあえず一冊づつ買ってみようと AS3の本と、おしえてAcitonScriptって本を買ってみて パラパラっとですが読んだんですが、すごく初心者向けに書いてあって おぉっこれなら自分でも理解できそうかも!と思ったんですが…。 AS3の方の本はAcitonScript初心者の自分にはもう何がなんだかさっぱりで… ちなみにプログラムの経験はまったくないのですが 最終目標が「AS3を使いこなす事」なら AS2を勉強するよりjavaの勉強した方が良いって事でしょうか? AS3の本を見てみて正直 いきなりAS3をマスターするのは厳しそうだなぁと感じたんですが…。 (その辺、javaの本なら種類とか初心者向けの本もたくさんありそうで 独学しやすそうな印象なのですが。)
最終目標が「AS3を使いこなす事」ならAS3をやればいいじゃん Flexならブラウザ上、AIRならデスクトップアプリケーションが作れるし AS3.0を覚えてからJavaやC#覚えるのは苦労が少ないし AS3.0とJavascriptはどちらもECMAScriptだから応用範囲は広い。 Windows環境のデスクトップアプリケーションで一番制約が少ないのはC# + .NET とかかもしれないけど
20 :
Now_loading...774KB :2008/07/12(土) 11:00:44 ID:/hld6bTL
PHPからFLASHへURLを幾つか送りたいのですが、
http:// ○○.net/○○.php?t1=1&t2=5&t3=6
の場合、&を使用した
http:// ○○.net/○○.php?t1=1で切れてしまいます。
よい解決法は有るでしょうか?
>>20 PHP側でurlencode関数使って、URLエンコードした文字列を送ればいいんじゃないかな?
urlencode("
http:// ○○.net/○○.php?t1=1&t2=5&t3=6");
FlashCS3のAS3で質問します。 外書きにしたASファイルから、戻り値を取りたいのですがどうしても判りません。 package { public class my_test extends MovieClip { public var testStr:String; public function my_test() { testStr="hoge hoge"; return; } } } 例えばこういうクラスのtestStrを外部のクラスに戻り値として渡すにはどうすればいいんですか?
お前、戻す気ないだろ・・・
シュールな釣りだな
釣りじゃなくて。 return testStr; って出来ないんでどうしたらいいのかと。
クラス名と同じfunctionは戻り値を返すことはできないよ new testStr()を実行する際にfunction testStrの処理が実行されるよ var test:my_test = new my_test(); // testStrに"hoge hoge"が設定される trace(test.testStr); // "hoge hoge"が出力される
28 :
27 :2008/07/13(日) 13:55:05 ID:3VDKJDHK
2行目のtestStrはmy_testに置き換えよろしく
\ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ コンストラクマ ・・・ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
コンストラクタで調べるといいよ
コンストラクタのパブリッククラスには何も書かなくていいんですね。 package { import flash.display.MovieClip; public class testStr extends MovieClip { public var str:String; public function testStr():void { } function txtRes():String { str="hogehoge"; return str; } } } これで出来ました。 ありがとうございました。
コンストラクタのパブリッククラスか・・
細い線を一本、右から左へゆっくり進むように描きたいのですが タイムラインではなくスクリプトで書く方法お願いします。 超超簡単なflashのスクリプト集のサイトがありましたら紹介もしてほしいです。
質問。環境はAS3,Flex builder 3です。
hitTestPointメソッドなんですが、
if (obj1.hitTestPoint(Math.floor(mouseX),Math.floor(mouseY),true)) {
addChild(obj2);
}
と記述しても、長方形での判定になってしまいます。
画像の透過処理はしてあって、透過部分は下の画像が見えることは確認してあります。
下記サイトの
http://livedocs.adobe.com/flex/2_jp/langref/ shapeFlag:Boolean (default = false) ? オブジェクトの実際のピクセルと比較して検査する場合は true、境界ボックスと比較して検査する場合は false です。
「オブジェクトの実際のピクセル」っていうのは具体的にはなんのことなんでしょうか。てっきり、透過処理をしていない部分のことかと思ってたんですが。
解説サイトを見るとhitTestPointメソッドではなくて、hitTestメソッドを使っていますが、使ってみると未定義のメソッドという注意が出てきました。
どこを変えたらいいんでしょうか。
BitmapData.hitTest()
>>35 ありがとうございます。なんとか望んでいた反応が返ってくるようになりました。
BitmapDataってなんだ? って最初かなり戸惑いましたけど。
あとは試行錯誤で応用してみようと思います。
37 :
Now_loading...774KB :2008/07/15(火) 17:52:45 ID:UZpyOcej
action script3で、 クリックされたmcを引数として別クラスのメソッドに送る方法が分かりません。 誰か教えてください。 ここから詳しい内容です。 ------------------------------------- ドキュメントクラスmain.as内の記述です。 マウスでクリック(CLICK)された際に、movieclip(名前:mcHit)を、 他のカスタムクラスのhitHandler関数に引数として渡したいのですが、 hitHandler(e.target) とすると、 以下のメッセージが出ます。 TypeError: Error #1034: 強制型変換に失敗しました。mcHit@38d7a61 を hitHandler に変換できません。 これは一体何故なんでしょう??
hitHandlerメソッドの引数の型指定は?
39 :
Now_loading...774KB :2008/07/16(水) 03:40:07 ID:+C7NFaxG
37です。 >38 MovieClip と、型指定していますが、ダメでした。 public function hitHandler(obj:MovieClip) { //命令 } というようにしておりますが、ダメです。
下記のスクリプトで外部フォルダからJPGを読み込んでいます。 このJPG画像の画質を調整、またはスムージングしたいのですが、可能でしょうか? cnt = 0; loadMovie("img/sample.jpg", ○○○); this.onEnterFrame = function() { if (cnt>=1) { play(); cnt = 0; delete (this.onEnterFrame); } }; 可能であれば方法をアドバイスいただきたいです。 よろしくお願いします。
>>39 hitHandler(e.target as MovieClip)とか
hitHandler(MovieClip(e.target))とかでどうかな
>>40 versionわからんからなんともw
フィルターかBitmapDataで色々いじるとか
42 :
Now_loading...774KB :2008/07/16(水) 14:43:16 ID:zLLJhRdN
>>41 ありがとうございます!
hitHandler(e.target as MovieClip)
hitHandler(MovieClip(e.target))
共に問題なく動作しました!
しかし、なぜ、MovieClipと型を
ガチガチに決めてしまわないと駄目なんでしょう?
e.targetを使うときは、
必ずターゲットとなるオブジェクトに対して、型を今回のように、
MovieClip(e.target)
とか、
e.target as MovieClip
にしてあげると覚えておけばいいでしょうか。。
それにしても、かなり悩みました。
>>42 targetオブジェクトはObject型としてtargetプロパティに納められてるから
>>42 というか、Object型として返ってくるの方が正しいか
フルスクリーンflashにてhtmlでいう「background」を再現したいと考え、以下のように記述したのですが、 ウィンドウサイズ内でしかタイル状に敷き詰めた画像が描写されません。 (ウィンドウを広げた場合、広げられた部分は更新しない限り空白) transparentを利用する以外に、無限に広がる「background」を再現する方法を ご教授願えないでしょうか。 Stage.align = "TL"; Stage.scaleMode = "noScale"; bmp = flash.display.BitmapData.loadBitmap("bg"); mat = new flash.geom.Matrix(); _root.beginBitmapFill(bmp, mat,true,true); _root.moveTo(0, 0); _root.lineTo(Stage.width, 0); _root.lineTo(Stage.width, Stage.height); _root.lineTo(0, Stage.height); _root.endFill();
言語的な美しさってActionScript 3.0はどうなんでしょうか? よくRubyのプログラムは美しい、とか、Perlは汚いとか、Javaはタイピングする数が多い、とか 言われますけど、これもJavaに似てる感じでしょうか?
>>45 Stageのresizeイベントで描きなおすとかすればいいんじゃね?
48 :
Now_loading...774KB :2008/07/17(木) 03:54:59 ID:Gyrnmso4
Win2x、AS3です。 ActionScriptのプログラムの流れは、どこから始まるのでしょうか。 C言語のmain関数みたいなのです。
>>48 win2kか?
CS3ならflaのプロパティパネルのドキュメントクラスに設定されたクラス
>>49 ありがとうございます。
はい、win2k(XP)ですorz。
エディタの方の環境を書き忘れてしまいましたが、FlashDevelopです。
プロパティでそういうのが無いか探してみたいと思います。
始まる位置とは別で、以下のプログラムでTestと表示されるのですが、
var test : Test = new Test();
と初期化?していないのに表示されるのはなぜでしょうか。
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Test extends flash.display.Sprite
{
public function Test():void
{
var textField:TextField = new TextField();
textField.text = "Test";
textField.autoSize = TextFieldAutoSize.LEFT;
addChild(textField);
}
}
}
>>51 あ、そうですよねw
ありがとうございます。
>>46 Rubyは糞遅い、とか、Perlは難しいとか、Javaはエレガント、とか
そんな感じじゃないでしょうか
>>49 FlashDevelopでは、プロジェクト作ると、一緒にMain.asが出来て、
それがスタートクラスになるみたいなので、問題を解決できました。
プロジェクトを作らず、直にasファイルを作っていたのがダメでした。
55 :
Now_loading...774KB :2008/07/17(木) 21:09:49 ID:8Uy9fTPe
初めまして。ボタンシンボルについて質問させてください。
ボタンシンボル内に配置されているダイナミックテキストのインスタンスが取得できず困っています。
ボタンシンボル内にダイナミックテキストを配置し、
そのダイナミックテキストをメイン側のActionScriptから変更したいのですが…。
※使用例としては、ランダムな複数のアイテムを
アイテム名が表示されたボタンから選択する、というものを想定しています
----------------------------------------------------------------------
環境:Adobe Flash CS3 Pro にて Flash version 9(AS3.0) で作成
プログラム上にて:
○ボタンシンボル内にダイナミックテキストを配置、テキストのインスタンス名を "txt_itemname" に設定
○メインのアクションで、以下のように記述
[ボタンのインスンス名].txt_itemname.text = "アイテム1";
デバッグ出力結果:
ReferenceError: Error #1069: flash.display.SimpleButton にプロパティ txt_itemname が見つからず、デフォルト値もありません。
----------------------------------------------------------------------
デバッグ中のボタンインスタンスには"txt_itemname"なるインスタンスが見当たらず・・・
少し例が違うのですが、以下のページに、
"ボタンの中に配置したMovieClipにインスタンス名を設定しても認識されない"
と書かれているのを発見しました。
ttp://www.flash-jp.com/modules/newbb/viewprint.php?topic_id=7494&forum=8&post_id=37556 上記ページのとおり、ボタンシンボル内のダイナミックテキストのインスタンスは取得することが出来ないのでしょうか?
また、こういうことをしたい場合はMovieClipでボタンを作るべきなのでしょうか?
56 :
Now_loading...774KB :2008/07/17(木) 21:36:56 ID:U+BXAqG1
AS3です。 ムービーサイズをAS3上から コントロールしたいのですが、どのクラスを使えばいいのでしょうか。 stage.stageWidthでサイズは取得できますが、 逆にサイズをコントロールする方法が わかりません。 そもそもHTMLにはめ込んでいるswfのムービーサイズを、 自在に変更することは可能なのでしょうか。 ムービーサイズというのは、 flashのプロパティパネルの「サイズ」のことです。
ActionScript3.0アニメーションっていう本を読んでます。 角度と移動量から、xとyを計算してENTER_FRAMEでアニメーションさせる というサンプルが思ったとおりの動きをしないのですが、何か勘違いしてるのでしょうか? (一部抜粋) private var ball:Ball; private var angle:Number = 45; private var speed:Number = 3; private function init():void { ballをaddChild } private function onEnterFrame(event:Event):void { var radians:Number = angle * Math.PI / 180; var vx:Number = Math.cos(angle) * speed; var vy:Number = Math.sin(angle) * speed; ball.x += vx; ball.y += vy; } これで、右下45度に向かってballが移動するのかとおもうのですが、角度が45ではありません。 たとえば90にしても、真下にはいきません。 どっかおかしいですか?
>>55 パスが違ってるだけじゃね
ボタンはコンテナじゃないし
>>56 拡大縮小するとか、htmlでは設定できるが本来の表現じゃなくなるからなあ
>>57 >var radians:Number = angle * Math.PI / 180;
radiansってどこで使ってるの?
59 :
Now_loading...774KB :2008/07/18(金) 16:15:09 ID:OGGUuJ9T
クラスのコンストラクタでMCを作成して stageにaddChildしたいのですがstageへアクセスできないみたいで、できませんでした。 クラスからstageにMCをaddChildするにはどうすればいいのでしょうか。
60 :
57 :2008/07/18(金) 21:09:44 ID:j1Ba85R1
61 :
Now_loading...774KB :2008/07/18(金) 22:20:00 ID:ulTCy8U8
こんちわ、最近Flashはじめた厨房です。 一時粘着させてもらいます。 で、早速質問なんですが、asファイルをimportしようとしたら下記エラーが出ます。 1084: シンタックスエラー : identifier が as の前に必要です。 asに書いたのは下の一文だけ import src.as.*; これってどういうことなんですか?
62 :
61 :2008/07/18(金) 22:31:04 ID:ulTCy8U8
あ、ごめんなさい、環境変数にASのパス入れてなかったorz またきます。
importはファイル名じゃなくてクラス名だから import src だよ って、もうどっかいなくなったかな?
64 :
61 :2008/07/18(金) 22:39:21 ID:ulTCy8U8
>>63 あ、いえ、まだいます。
環境変数でD:\Flash\srcにクラスパスを設定したとします。
で、srcフォルダ配下にas3っていうフォルダを作成したとします。
as3フォルダ内にpackage src.asでパッケージ宣言をした場合、どういった書式になるんですか?
import src.*;
で通るんでしょうか?
65 :
61 :2008/07/18(金) 22:40:59 ID:ulTCy8U8
すんません。 package src.as3でパッケージ宣言をしたasファイルを設置した場合、でした。
通りません
67 :
61 :2008/07/18(金) 22:51:51 ID:ulTCy8U8
>>66 ちょwwwテストしたら通ったぢゃないっすかwww
//test.fla
import src.as3.*;
var sample:TestTrace = new TestTrace();
//TestTrace.as
package src.as3{
public class TestTrace{
public function TestTrace(){
trace("test");
}
}
}
あれ?でも返り値としてsample変数を受け取りたくない場合ってどうすればいいんっすかね・・・・。
どなたか教えてください。
最初の「var sample:TestTrace = 」を書かずに単にnew TestTrace();だけ書くとか?
それでOK
70 :
61 :2008/07/18(金) 23:13:07 ID:ulTCy8U8
お、通りましたー! サンクスです。またきます。
71 :
61 :2008/07/19(土) 02:29:05 ID:c8rCFT/w
ちょっとまた質問です。 Loaderクラスをインスタンス化したloaderっていうのを作りました。 で、loaderのプロパティであるloadに引数としてswfファイルのパスを指定してあげて実行したら下記エラーが出ました。 TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at src.as3::SWFLoad/loadHandler() ちなみにコードはこんな感じです。 ==================================================================== package src.as3{ import flash.display.*; import flash.events.*; import flash.net.*; public class SWFLoad extends Sprite { private var loader:Loader; private var url:URLRequest; private var mc:MovieClip; public function SWFLoad(xmlPath:String){ loader = new Loader(); mc = new MovieClip(); url = new URLRequest(xmlPath); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); loader.load(url); } ・・・・・続く
72 :
61 :2008/07/19(土) 02:30:32 ID:c8rCFT/w
private function loadHandler(event:Event):void { addChild(loader); mc = loader.content as MovieClip; mc.stop(); } } } ==================================================================== mc = loader.content as MovieClip;がいけないんですかね?どういう書き方をすればいいんですか? どなたか教えてください。
よくわからんがmcってどこで宣言してんだ?型は?
あ、わりい宣言してるしOrz
75 :
Now_loading...774KB :2008/07/19(土) 10:57:48 ID:ok6jVTwd
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) attachMovie()でのMCのフレーム指定について質問です。 線型のMC(lineM)を描画用MC(waveBoardM)内に条件によって色を変えつつattachMovieしたく思っています。 つまり、条件1→lineMを青,条件2→lineMを白,・・・ という感じです。 このとき、あらかじめ lineM 内のフレームとして、フレーム1:青色,フレーム2:白 として、条件に より _currentframe でフレーム選択ができないか?と思ってASを書きましたがうまくいきません。 ASは以下の通りです。 if (条件1) { lineProp = {_currentframe:1}; } else if (条件2) { lineProp = {_currentframe:2}; } this.waveBoardM.globalToLocal(lineProp); this.waveBoardM.attachMovie("lineM", NewLine, lineDepth, lineProp); この場合のアドバイスを願います。
>>75 _currentFrameは読み取り専用だからそれだと無理かな。
onEnetrFrameが空いてれば、それを使って移動するのはできると思う。ただ、1フレーム分遅れるけどね。
lineProp={onEnterFrame:function (){delete this.onEnterFrame;this.gotoAndStop(2);trace("初期フレームに移動しました");}}
this.waveBoardM.attachMovie("lineM", NewLine, lineDepth, lineProp);
77 :
61 :2008/07/19(土) 12:03:17 ID:c8rCFT/w
おはようです。
うむ、やっぱりmc = loader.content as MovieClip;でmcがnullなのがいけないっぽいです。
traceしてみたらnullってたorz
mc.stop();をコメントアウトしたらエラーは出なくなった。問題はなぜmcがnullなのか・・・ということですが・・・。
ちなみに上のASは外部SWFファイルを読み込むASなんですが・・・。
どなたかどういう書き方なら良いのか教えてくだしあお願いしまう><
[参考にしたサイト]
ttp://myactionscript3.blog51.fc2.com/blog-entry-5.html
>>77 変な処理だけど、間違ってはいないんじゃないかなあ
loader.contentはnullじゃないの?
そこがnullだったら、読み込みの問題じゃないのかな
で、nullじゃない場合は。読み込んでるのがAS3.0のswfファイルじゃないんじゃないかな?
昔のswfムービーとか
>>77 trace(loader.content)は?
入ってたとして、asでnullが返されるということは型変換に失敗している
直接キャストして例外を拾えば何から変換しようとしたか分かるから試せ
あとnew MovieClip()はいらんだろ
よくわかってないやつが書いてるような中途半端なサイトは参考にするな
外部swfのロードなんてlivedocsにもサンプルが転がってるわけだし
80 :
61 :2008/07/19(土) 12:36:51 ID:c8rCFT/w
loader.contentもnullでしたorz ってことは読み込み時に失敗してるってことっすよね。 でもtrace(xmlPath);でtest.swfとちゃんと値は入っているのですが・・・。 ちなみにtest.swfのファイルの設置場所は下記のとおりです。 [AS] D:\Flash\src\as3\SWFLoad.as [SWF] D:\Flash\test.swf D:\Flash\sample.swf
81 :
61 :2008/07/19(土) 12:44:34 ID:c8rCFT/w
>>79 livedocs参考にして書いてみた。
===========================================
package src.as3{
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class SWFLoad2 extends Sprite {
public function SWFLoad2(swfPath:String){
var request:URLRequest = new URLRequest(swfPath);
var loader:Loader = new Loader();
loader.load(request);
addChild(loader);
}
}
}
===========================================
エラーなく通った!!でも外部swf再生されない・・・orz
swfの参照先は
>>80 と同じなんですけど、このパスの指定方法ってだめなんすか?
よくわからん・・・・・。
>>76 さんきゅう。
う〜ん、1フレずれるのかあ。。。
83 :
61 :2008/07/20(日) 00:09:45 ID:w3L7cTKp
質問です。 コンストラクタで返り値を取得したいんですけど、どうすればいいんですか? package src.as3{ public class testReturn{ public function testReturn():Boolean{ var flag:Boolean = false; return flag; } } } 回答おね
コンストラクタは戻り値は返さん コンストラクタ内で処理した値見たかったら 変数に値入れてそれを後から参照しろ もういいから 本買うなり基本教えるサイトなり 超基本スレ行け
livedocs一度全部読め
俺の予想では、61はコリン・ムック。
61はJavaプログラマに1ペソ
こんな低レベルでJavaプログラマと言えるのかどうか
89 :
Now_loading...774KB :2008/07/20(日) 21:55:23 ID:8BTeS3fg
Aはこの3通りの繰り返しを持つ 1.空白 2.AA 3.cAc Aは1〜3をランダムに実行するものとし、全てを合計して20回Aの次をランダムに選んだらプログラムは終了する(もちろんうまく1が選ばれれば20回もいかずに終わる)。 その結果を表示するプログラムをお願いします。
その前に文章を日本語に翻訳してからもう一度質問してもらえますか?
91 :
Now_loading...774KB :2008/07/20(日) 21:58:46 ID:8BTeS3fg
20回で自動的にプログラムが終了するので、Aとcの文字列ができる場合があります
AS3でByteArrayのcompress、uncompress以外に圧縮処理をする方法ってありますか?
>>88 書き方がJavaPGあがりっぽかったからなんとなくね
コンストラクタの返り値とか言う人が Java あがりとはこれいかに
>>94 そこに関しては同感
つーかコンストラクタで返り値返せる言語ってないような希ガス
コンストラクタの戻り値はインスタンス
>>94 ごめん。
ちょっと「じゅん(^_^)V」の反応を試した。
どっちでもなく中立なのが分かって安心した。
それでも今後反発する人に関しては知らん。
98 :
Now_loading...774KB :2008/07/23(水) 01:12:51 ID:lFK78v7b
as3です。 一枚の巨大な画像があるとします。 横2000px 縦500pxというサイズです。 そのどこでもいいから、クリックしたら、 クリックした場所にズームするという処理をしたい場合、 どのようにしたらいいでしょうか。 一枚ものの画像なので、 中心点だけを毎回クリックするたびにクリックされた場所を 中心点とすれば単純にスケールを変えればうまくいきそうですが、 中心点は常に画像の中で決まっているので、どうしたものかと悩んでます。 何か別の方法はありますでしょうか。
99 :
Now_loading...774KB :2008/07/23(水) 06:05:08 ID:FEFC7t5B
FlashDevelopでflパッケージを使いコンパイルする方法はどうしたら良いですか? GlobalパスにFlashDevelopのライブラリ内にあるflフォルダを入れてコードアシストは出るようになったのですが コンパイルで「Error: 定義 fl.transitions が見つかりません。」となります。 教えてエロい人!
そいや,videoでflv使う際にバッファリングする箇所を指定って出来るんですかね? たとえば,360secの映像のうち,30secから40secまでと120secから150secまで,みたいなカンジ.
>>101 FLVPlaybackにbufferTimeプロパティってのがあるよ。何ミリ秒バッファリングするのか指定できるプロパティ。
でも、配信専用サーバー用意してないと意味無いんだよね。
普通にflv読むプログレッシブ形式だと、どのみち全部読み込むし、読み込まない部分は動かないし。
>>102 そのページにソースまで乗ってるじゃないの。
それが分からないと無理なんじゃないかな?
モザイク固定だったら、あらかじめ描いておけば済む話なんじゃない?
>>104 当方、素人なのでどの部分を改造したら良いのかが分からないのです。
マウスに反応するのではなく、
特定の部分だけにモザイクをかけるサンプルがあれば、
何とか理解できると思います。
106 :
101 :2008/07/23(水) 09:19:34 ID:oqQeDPIW
>>103 ありがとう.Red5(Flash配信サーバ)使ってるから何とかなると思う.
希望の光が見えてきたよヽ(´ー`)ノ
107 :
Now_loading...774KB :2008/07/23(水) 09:47:59 ID:IjIxoyvR
>>100 FlashDevelopの"FirstRun\Library\AS3\frameworks\FlashCS3\fl"を指定したところ、
「fl\transitions\TransitionManager.as(126): col: 26 Error: 関数にボディを含めることはできません」
とエラーが出てしまいます。
他に色々と試行錯誤してflフォルダをSDK内に入れて相対パスにしたりもしてみましたが全てエラー
もう涙目です。何か間違っていますでしょうか
ちなみにFlashDevelopのバージョンは3.0.0β7です。
>>107 flex-config.xmlの記述ミスではないでしょうか?
参考までに自分のxmlのsource-path部分をコピペしときます.
<source-path>
<path-element>C:\Program Files\FlashDevelop\FirstRun\Library\AS3\frameworks\FlashCS3</path-element>
</source-path>
109 :
Now_loading...774KB :2008/07/23(水) 10:21:19 ID:IjIxoyvR
>>108 FlashDevelopのインスト先が同じなのでそのままコピペさせて貰ったんですがやはりエラーが出てしまいます。
現在SDKのバージョンは3を使用していたので、2でやってもみましたが結果は同じでした。
>>107 のエラー箇所は
public static function start (content:MovieClip,
^
(↑startの所)
となっていて、同じようなエラーが大量に出ています。
ハマりすぎて仕方ないのでflパッケージを諦めて別の方法で作成することにします。
回答ありがとうございました。
FlashCS3ProのAS3で質問します。 package { import flash.display.MovieClip; public class cMain extends MovieClip { var strAry:Array; public function cMain():void { strAry=new Array("nnn","hoge","hoge"); } function cStr():String{ var str:String; str = strAry[0]; trace(str); return str; } } } 根本的にオブジェクト指向ってのが判ってないという者です・・・ cStr()で上で設定したstrAryの中身をいじりたいんですけど、どうやればいいんでしょうか? 他の外書きクラスからcMain.cStrって呼び出して使いたいのです。 (実際にはstrAryにはRSSのパースしたのが入ってます。)
112 :
Now_loading...774KB :2008/07/24(木) 22:19:39 ID:LKk+wmbL
ようするにstr = strAry[0]; をしたいって事です。
>>111-112 クラス定義の内側で宣言した変数はメンバ変数と言われ、
基本的にクラス内のメソッドからは自由にアクセスできます
var strAryの前にそれぞれ、クラスの外部からもアクセスしたいならpublicを、
内部からのアクセスだけでよいならprivateを付けましょう
>>114 ばかっ!外部から参照したいだけならprotectedだろっ!ばかっ!
落ち付いてマニュアル読み直せw
as3でAccordionコンポーネントを使用する方法ってりますか? 普通に考えて無理だと思うし、調べてみても無理っぽい記述しかないが…。 明確な回答は見つかりませんでした。 よろしくお願いします
119 :
Now_loading...774KB :2008/07/25(金) 14:25:36 ID:Gb723wB/
AS3で質問します。 function clicked(event:MouseEvent):void {} というクリックイベントで呼び出す関数があります。 同じ関数をタイマーイベントでも呼び出したい時に()の中の Event:○○○をどう書いたら良いんでしょうか? 同じ内容の関数を function timerHandler(event:TimerEvent):void {}と書いてますが。 なんか違いますよね?
>>119 function clickAndTimerHandler(event:Event){
trace(event.type)
}
みたいにEventクラスで受けて、必要ならばtypeの値でどんなイベントかを
判定すればいいんじゃないかな?
>>120 ああ、なるほど・・・
すげえ助かった。ありがとう。
//Main.as package{ import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class Main extends flash.display.Sprite{ public function Main():void{ var sub:Sub = new Sub(); addChild(sub); }}} //Sub.as package{ import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class Hoge extends flash.display.Sprite{ public function Sub():void{ var tf:TextField = new TextField(); tf.text = "Hoge"; tf.autoSize = TextFieldAutoSize.LEFT; addChild(tf); }}} AS3です。 なぜ、文字を表示するのにaddChild(sub)をする必要があるのでしょう。 Subで既にaddChildを行っているのでそれだけで十分だと思うのですが。 Subで音楽を鳴らす場合は、addChild(sub)をしなくても鳴らせます。
すいません、↓のHogeはSubです。 public class Hoge extends flash.display.Sprite{
>>122 例えば
Subというウィンドウにテキストが表示されてても、そのウィンドウが画面に表示されてなければテキストは見えないでしょう?
音楽は、その音楽を鳴らしているウィンドウが存在していれば、画面に見えて無くても聞こえるでしょう?
分かりづらいかな・・?w
>>125 ありがとうございます。
package(class)の違いで、別ウィンドウが存在するんでしょうか。
音楽の方はなんとなく分かりました。
表示域は常にひとつです。トップレベル、この場合Mainがその表示域のベースとなります。 表示域とは演劇でいうステージです。意図的に照明(visible)を切り替えない限り常に見えます。 addChildはこのステージに背景や演者を設置する手段です。 newで生成した段階ではまだ舞台袖にいる段階で、ステージ上にはいないので見えません。 しかし音楽はステージ上にいなくても聞こえますよね。 さて、次に文字ですが、この場合Subを木、文字を木の実として考えましょう。 木の実を木に対してaddChildすると、木には木の実が配置されます。 しかし木自体がまだ舞台袖にあり、ステージ上に無いので見えません。 木(Sub)をステージに設置(addChild)して、初めて木の実もステージに登場するわけです。
>>127 ありがとうございます。
なるほど、すごく分かりやすく理解できました。
AS3swfファイルを起動すると、まず、 スタートパッケージのコンストラクタの処理をするのは分かったのですが、 その後、プログラムの位置はどこにある状態なのでしょう。 C言語のwhile待ちやWin32APIのGetMessageに当たるものです。 スタートパッケージの始めの部分で待っていて、 マウスが押されたりすると、スタートパッケージ内に mouseDownHandlerなどが無いか探し、 無ければまたスタートパッケージの始めの部分で待っている感じでしょうか。
イベントドリブンを理解しましょう
>>129 他の言語から移ってくると気持ち悪く感じるかもしれないけど
メインのループ処理は完全に隠蔽されてる
あえて言うなら FlashPlayer の中だけど
普通の開発者はそれを意識する必要が全くない
もしスレッドループ的なものが必要なら
Event.ENTER_FRAME や Timer のイベントを使う
ありがとうございます。
>>130 Win32APISDKと比べると↓な感じでしょうか。
スタートパッケージ == コールバック関数
スタートパッケージコンストラクタ == WM_CREATEメッセージ
addEventListenerで登録した物 == WM_LBUTTONDOWNなどの各メッセージ
>>131 普通の開発者はそれを意識する必要が全くない
というのはなんとなくは分かっていたんですけど、
new、addChildしたものが開放される(する)タイミングが分からなくて、
プログラムの流れが気になりました。
>>132 イベントドリブンやGCなんてのはActionScript固有のものでもないし、
どちらかというと最近では主流になりつつあるものだから、
そっちについて個別に学んだ方が理解が深まると思うよ。
C使いだったならC#と比較してるサイトいっぱいあると思うから。
>>133 ありがとうございます。
なるほど、C#を少しかじって理解を深めたいと思います。
135 :
Now_loading...774KB :2008/07/26(土) 23:12:25 ID:ujU4TWfq
1・外部XMLファイルをプログレスバーを表示してローディング→2・Tweener等を使ってサイト名表示等のアニメーション演出→3・XMLファイルデータを元に外部jpgを読み込み表示 といったflashをタイムラインを使用せずAS3で作成してあり、2の処理中に3へ処理をスキップする機能を持つスキップボタンを付けたいと思っているのですが どのように考えれば良いかが上手くつかめません、2のスクリプト処理中の流れを割り込み(2で作られた演出用のスプライト等を削除し)3へ移動させる?というのは どういった処理を行えばいいのでしょうか?
136 :
Now_loading...774KB :2008/07/28(月) 16:32:11 ID:VNCXamqf
as3です。 同一ディレクトリ内にある別のasファイル(VideoLoader.as)の中の変数(_hoge:uint)を 別クラスのBtnsClass.as内のスクリプトで、「参照&書き換える」には、 どのようにしたらいいでしょうか。 VideoLoader内でpublicで変数を宣言しています。 BtnsClass内のコンストラクタです。 VideoLoader._hoge = 5; では駄目でした。 VideoLoader._hogeにも型宣言するのはおかしい気がするし、 publicで指定しているのになぜアクセスできないのか、、、 かなり悩んでます。
AS3で静的コンストラクタみたいな 使い方ができるものがありましたら教えてください。
139 :
Now_loading...774KB :2008/07/28(月) 19:09:09 ID:QYVJsqYm
マスクの下にあるムービークリップにattachMovieしたオブジェクトがマスクされません 回避方法としてはどういうものがありますか?
aaa.swf内でbbb.swfをloadVariablesで読み込んでいるんですが
bbb.swfで記述しているsendAndLoadに対するonLoadイベントが発生しない状況になっています。
bbb.swfを単体で表示させるときちんとonLoadイベントは発生しているのですが
なにか問題があるのでしょうか?
またonLoadイベントが発生していないだけで表示は問題ありません。
aaa.swf内
_root.loadVariables("../menu/menu.txt");←これにbbb.swfパスが書いている
こんな感じです
&content1=../menu/bbb.swf&
bbb.swf内
var send_lv:LoadVars = new LoadVars();
var recv_lv:LoadVars = new LoadVars();
recv_lv.onLoad = function(){←aaa.swf経由で表示させると、こいつが走らない
trace("data");
};
send_lv.sendAndLoad("
http://aaaaa.com/zzzzz.php ",recv_lv, "POST");
どなたかすみませんが教えて頂けませんでしょか
var senddata:URLVariables = new URLVariables(); senddata.cmd = "cmd"; senddata.key1 = "001"; senddata.key2 = "002"; trace("##########: "+inkdata.toString()); とやったとき、traceの結果がころころ変わります。 cmd=cmd&key1=001&key2=002 だったり key1=001&cmd=cmd&key2=002 だったり。 毎回 cmd=cmd&key1=001&key2=002 とサーバー側で受け取る方法ってないですかね?
as2で作ったswfをas3で読み込んだらloader.contentがnullになってしまいます・・・ これってどうすればいいんでしょうか ちなみにas2のflaファイルはもうないんです
143 :
137 :2008/07/29(火) 00:22:15 ID:Z0cq8PeP
>>140 そもそもbbb.swfはどうやってロードしてるの?
>>139 マスクはどうやって作ってるの?
attachMovieは正の深度だよ
>>142 fla無いならAS3への移行できんからAS2で読み込んで処理する
質問です。環境:AS3, Flex3 Q:デフォルト値が設定されている引数が複数あるとき、n番目の値だけ指定して、他を省略する事はできますか? 例:function fの呼び出しでarg4の値だけ指定したい function f(arg1:int=0, arg2:int = 1, arg3:int = 3, arg4:int = 4):void { trace(arg1,arg2,arg3,arg4); } VBのCall f(arg4:=40)みたいなことは出来ないでしょうか
>>146 argumentsオブジェクトを使うといいかも。
AS3です。 addChildの反対のdeleteChildみたいなのがありましたら教えてください。
>>148 removeChild
答えた代わりに一つ聞きたいんだけど、この程度のことググった方が早くない?
どうしてわざわざ聞こうと思ったの?煽りとかじゃなくて。
>>149 ActionScript3 + addChild + (反対 or 開放 or deleteChild)
あたりではググっていたのですが見つけられませんでした。
また、newに対するdelete、コンストラクタに対するデストラクタ
がない(行われるタイミングが分からない)というのもあって、
addChildの反対のものも無いのでは
という気持ちがいけなかったのかもしれません。
なるほどね。とりあえず今後はLiveDocsのリファレンスガイドを活用するといいよ。 すべてのクラスとそのメソッドについて一覧と説明があるから、 そこを順番に見ていけば基本的なことの大半は解決するはず。 それからGoogleも単なる道具だから、使う側が工夫する必要もある。 「ActionScript3」の部分でAS3の情報に絞ったつもりだったんだろうけど、 ネット上のドキュメントはどちらかというとActionScript 3.0といった表記の方が多いんだよね。 例えばそこを変えただけでも(ActionScript 3.0 addChild)、LiveDocsが最初に引っかかるし。 あとremoveChildのことを「addChildの反対です」と表現してることってほとんどないし、 どういう書かれ方をしてるか予測して検索した方がより正解にたどり着きやすくなると思うよ。
リストに対する追加/削除はadd<->remove newに対する機能はdispose、ただしgcにまかせていいクラスならdisposeは存在しない AS3に限らず最近のフレームワークはみんなこんな感じ
AIR1.1になって、IME.enabledを設定してもIMEのオン、オフができなくなってしまったのだけど、解決方法を知っている人いませんか? AIR1.0では問題無くオン、オフできるのだけど。
>>151 >>152 すごく勉強になりました。
次に質問させていただくときには、気をつけたいと思います。
ありがとうございました。
155 :
Now_loading...774KB :2008/07/31(木) 19:29:34 ID:e2PUWTO5
ある日数の範囲(例:20080801〜20080930)と ある日数の範囲(例:20080815〜20081031)に 重なりがあるかどうかを判定するにはどうしたらよいでしょうか?
Date.timeで数値としての日時が取得できるから、それを比較すればおk
>>155 期間A→A1〜A2
期間B→B1〜B2
とすると、重なるのは
■A1------------A2
■ B1------------B2
■A1-------------------------A2
■ B1------------B2
■ A1------------A2
■B1-------------------------B2
■ A1------------A2
■B1------------B2
なので、A1<B1<A2またはB1<A1<B2の時重複してると言える。
if ( (A1 < B1 && B1 < A2) ||
( B1 < A1 && A1 < B2 ))
trace("重複");
これでどう?質問の本質を理解してないかも。
158 :
Now_loading...774KB :2008/07/31(木) 22:57:29 ID:e2PUWTO5
>>156-157 ありがとうございます! なるほど、こういう考え方がありましたか。
これでうまく行きそうです。とても助かりました!
NetStream.onStatusについての質問です。AS2です。 FLV が見つからない場合の"NetStream.Play.StreamNotFound"なんですが、 ローカルでは取得できるのですが、サーバー上だと取得できません。 しかもそのまま放置するとフリーズに近い状態になってしまいます。 よろしくお願いしまいます。 コード: var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); stream_ns.onStatus = function(infoObject:Object) { if(infoObject.code == "NetStream.Play.StreamNotFound"){ messageText.text = "NetStream.Play.StreamNotFound"; } };
すいません自己解決しました。FC2サーバーだと取得できないみたいです。
AirのSQLiteで、人名などの日本語のデータをサーチできなくて困ってます sql.text = "SELECT * FROM daisy_task WHERE Task == 山田太郎" みたいにするとエラーが帰ってきてしまいます どうしたらよいですか
SQLiteはよく知らんが普通検索文字列は"とか'で囲むんじゃね '山田太郎'とか
>>162 はや!助かります
sql.text = "SELECT * FROM all_task WHERE Task == '山田太郎'";
これでやってみてもだめでした
すみません、ご指摘の方法で出来ました データベースの方がおかしかった模様 ごめんなさい
二次元配列を利用して、目標の座標へ移動する為に、どのような記述をすれば良いか困っています。 hitTable = [ [0,0,0,0,0] [0,1,1,1,0] [0,0,2,0,0] [0,1,1,1,0] [0,0,0,0,0] ] 上の配列は簡単なものなのですが、0が移動可能領域、1が壁、2が目標座標といった感じです。 移動させる物は四隅([0][0]、[0][4]、[4][0]、[4][4])のいずれかからスタートし、1座標ずつ目標座標へ近づき移動したいのですがスタート位置がランダムな為、記述方法がいくら考えても思いつきません……。 良ければどうか皆さんの知恵を貸して頂ければ助かります。
それはASじゃなくてアルゴリズムの問題だよね? ゲ製作技術とか行った方がいいんじゃないかな もしくは経路探索アルゴリズムとか最短経路問題でググるといいと思う
環境AS3です. flvを切り貼りするようなソフトを作ろうと思っているんだが,それ系のライブラリってあるぽ? 無いとしたらどうやって編集すればいいんだろ? RichFLVがある以上は編集不可能ではないと思うんだが・・・.
>>167 板違いです。
言語は何か知りませんがプログラム板にでもいってみては?
>>166 そうですね。アドバイスありがとうございました。
170 :
Now_loading...774KB :2008/08/01(金) 18:29:45 ID:ee8nRpht
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) hitTest()動作で質問です。 root上に2つのMC(mc1, boarderM)を置き、mc1はドラッグ移動が可能にしています。 boarderMは線状のMCで、これにmc1がドラッグ移動で右方向から当たった時、mc1の X座標が増分される、つまり壁に当たって弾かれる動作をしたく思っています。 フレームアクションのASは以下の通りです。 this.onEnterFrame = function() { if (this.mc1.hitTest(this.boarderM) == true) { this.mc1._x = +1; } しかしこれだと、右方向から当った瞬間、mc1がrootの原点に飛んでしまいます。 アドバイス願います。
171 :
Now_loading...774KB :2008/08/01(金) 18:35:09 ID:rILae5AR
AS2です。テキストフィールドにhtmlを読み込んで表示させています。 画像とテキストがあり、全てセンタリングしたいのですが 画像ができません。 ヘルプにはイメージタグのalignはleftとrightしかないと書いてあるのでalignでは できないようですが、方法はないでしょうか?
>>170 よくわかんないけど、
this.mc1._x = +1;が
this.mc1._x += 1;の間違いなんじゃないか?
同じムービークリップをたくさん複製するとして、 そのムービークリップの1つのフレームアクション内で同じ処理を何度も記述する場合、 その処理をfunctionを使って定義したらしないのよりその分メモリ余計に使いますか? functionを使って記述した方が見やすくて修正も簡単ですが、少しでも処理が遅くなったりするのなら使わない方が良いしどうでしょう。
>>174 関数呼び出しは確かにオーバーヘッドが生じますが、
コードの量によってそうした方が全体的なコストが下がる場合もあります
結局は内容次第なので、自分で計測してより良い方を選択するのがいいと思います
ただ、正直な話、それを自分で判断できないレベルではどっちにしても大差ない気もしますし、
Cみたいな言語で速度を追求したい場合ならともかく、ASなら普通は関数にまとめた方が良いと思います
>>175 レスありがとうございます。大きな差がないか自分で確かめてみます。
それともう一つ質問なんですが、deleteを使って複数の変数、たとえばa、b、cを削除する場合、
delete a;
delete b;
delete c;
とdeleteを何度も書かずに、1つにまとめて削除する方法はありませんか?
環境: OS=Win XP SP3; Soft=Flash CS3 Pro; パブリッシュ=ver.9+AS3.0; Player=9,0,115,0と9,0,124,0の両方で確認 TextFormatについての質問です。 Font.enumerateFonts(true)を利用して、その環境で使えるデバイスフォントを取得し、 あるTextFieldでそのフォントを使うようにし、その後適当な文字列を打たせて表示させたいのですが、 何故か一部のフォントはMS ゴシックらしきフォントが表示されます。(その現象が起きるフォントは固定) ver.8+AS2.0環境で似たような処理をさせるとうまく表示できるのにver.9+AS3.0では出来ませんでした。 フォントを入れなおしたり、Playerを入れなおしてみたのですがそれでも駄目でした。 どのようにすれば、うまくデバイスフォントを表示させることが出来るのでしょうか。 次のレスにソースを置いておきます
178 :
177 :2008/08/02(土) 22:43:44 ID:ZZ2Wq4Gj
import fl.controls.List; import flash.text.Font; var Font_list:List= new List(); stage.addChild(Font_list); var tmpFontArray:Array = Font.enumerateFonts(true); tmpFontArray.sortOn("fontName",Array.CASEINSENSITIVE); tmpFontArray.unshift({fontName:"_明朝"}); tmpFontArray.unshift({fontName:"_等幅"}); tmpFontArray.unshift({fontName:"_ゴシック"}); tmpFontArray.unshift({fontName:"_typewriter"}); tmpFontArray.unshift({fontName:"_serif"}); tmpFontArray.unshift({fontName:"_sans"}); var fontData:String; var l:uint = tmpFontArray.length; for each (var item:Object in tmpFontArray) { fontData = item.fontName; Font_list.addItem({label:fontData, data:fontData}); } Font_list.selectedIndex = 0; Font_list.scrollToIndex(0); var myTextFormat:TextFormat= new TextFormat(Font_list.selectedItem.data,40); var myTextField:TextField= new TextField(); myTextField.type= TextFieldType.INPUT; myTextField.border= true; myTextField.defaultTextFormat= myTextFormat; myTextField.text= "ここに文字を入力"; stage.addChild(myTextField); Font_list.addEventListener(Event.CHANGE, changeListener); function changeListener(msg:Event):void { myTextFormat.font = Font_list.selectedItem.data; myTextField.setTextFormat(myTextFormat); }
変数aの値によって参照する変数を変えたいのですがどのように変数を指定してあげればよいのでしょうか。 変数aに11と入っているとして 〜〜11 aに5が入っていれば〜〜05のようにしたいのです。 配列では〜〜[a]としてやれば出来ることは知っていますが、配列は使いたくありません。
>>179 なんで配列使いたくないんだ?
ま、いいけど、配列アクセス演算子すら使いたくないのか?
this["hoge"+a] aをゼロ詰めにする方法は宿題なっ!
>>180 >>181 亀レスすいません。
配列を使いたくないのは hoge[11]まで作ってしまうと hoge[4]など値を入れる予定の無い所まで作ってしまうので、
無駄が大きくなってしまうと思ったからです。
配列アクセス演算子ですか。勉強になります。
var a:int = 5;
var hoge5:String = "five";
var hoge11:String = "eleven";
var result:String = this["hoge"+a];
こうしてresultをTextFieldで表示。。。
これじゃダメなんですか。
resultを"a"と直接文字列を入れてあげればaが出ますし、
"a "+ this["hoge"+a]としてやると何も表示されなくなります。
Cを少しかじった程度ではオブジェクト指向プログラムは難しい。
>>182 >値を入れる予定の無い所まで作ってしまうので
それって設計自体間違ってるってことじゃね
>>182 trace(result)すると、ちゃんとfiveって出るけど?
何が問題なの?
一通りの事ができるようになってから 無駄な部分を省くようにしていった方がいいな。 色々やってるうちに別の方法が見つかるのは良くあるので。
>>182 結局のところ何がやりたいの?
小出しにせずにやりたいことを書いた上で詰まってるところを書いた方が自分のためだよ
指定した小数の位以下の値を四捨五入する方法ってありますか? 例えば、少数点第二位以下を四捨五入して、0.59721を0.60000にするようなものです。
掛け算
AS3での正規表現の部分がよく判らないので質問します。 <div>〜</div>のパターンマッチングをしたいんですが var pattern:RegExp =/<div>*<\div>/ 上手くいかないので教えてください。
>>189 var num:Number = 0.59721;
trace(Math.round(num * 10)/10);
>>191 ヘルプの正規表現の部分を読む
サンプルもいっぱい載ってる
>>191 正規表現はワイルドカードとは違います
<div>.*</div>
ドットは任意の一文字
アスタリスクは一つ前の文字が0個以上連続する文字列を表します
また\はメタキャラクタと言って、その後ろに続く文字によって意味が変わります(スラッシュを意味するわけではありません)
AS3のヘルプ中バックスラッシュで表記してあるのがこれにあたります。
> <div>*<\div>
の場合、\dは数字の0〜9のいずれかを意味するので、パターン全体としては
"<div"に続いて">"が0個以上連続して続いた後"<"が現れ、続いて0-9の数字の後"iv>"が来るような文字列にマッチします
すなわち
<div>>>>>><0iv>
のような文字列にマッチします
「AS3での正規表現」と書いていますが、正規表現そのものを勉強した方がいいです。
よってスレ違い
194 :
Now_loading...774KB :2008/08/05(火) 18:46:53 ID:wSZFqz11
AS3で、Localにある複数の外部SWFを読み込む処理を作成しています。 var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, LoadComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, LoadIOError); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, LoadSecError); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS , LoadProgress); loader.load(new URLRequest(hoge), new LoaderContext(false, ApplicationDomain.currentDomain)); 以上の処理を実行してCOMPLETEまたはERRORが発生したら、次のファイルで同様の処理を繰り返すということをしています。 たいていは上手くいくのですが、たまに(20回に1回程度)処理が止まってしまいます。 PROGRESSイベントを監視すると、データの読み込みは完了しているのに、その後何もイベントが起こっていないようです。 何もエラーらしきものを出さないので途方に暮れています。 考えられる原因はないでしょうか?
195 :
167 :2008/08/05(火) 20:27:41 ID:aTLY0McM
返信が遅れて申し訳ありません.
>>167 です.
>>168 言語はActionScript3.0です.
現在,ActionScriptを用いてFLVを編集するようなツール(ウェブ上のFLVを読み込んで編集し,吐き出しを行う)を制作したいと考えています.
そのために,適切なライブラリがあるのか聞きたかったのです.
インタフェースは後からどうにでもなるとして,FLVの一部を切り取ったり張り付けたりするのに適当なライブラリはありませんか?
すでに自力で調べ尽くして有りそうにない,と感じたので最後の頼みの綱として皆様の知恵をお借りしたいと考え,質問させていただきます.
196 :
Now_loading...774KB :2008/08/05(火) 21:09:29 ID:kPitZFlV
ActionScript2です。 変数「a」に「こんにちは」を含む言葉が入ってる時に、 変数「b」に「おはよう」を代入のようにしたいんですけど、 エクセルのワイルドカード()曖昧検索のような事は出来ませんか?
198 :
196 :2008/08/05(火) 21:20:59 ID:kPitZFlV
>>195 ffmpeg等の既存のライブラリを移植する以外に方法はないと思う
オープンな仕様だから仕様書読み漁って新規に作り上げるという手もあるけど、
正直なところ前者も後者も君のスキルでは無理だと思う
>>194 都度Loaderをnewしているなら
処理完了後にremoveEventListenerしてやらないと
Loaderオブジェクトが残ったままになるぞ。
それが直接の原因か分からんが
201 :
Now_loading...774KB :2008/08/06(水) 01:25:17 ID:T28867CU
action script3で、 クラス間の変数の送受信は何でやればいいですか?
>>201 何でやればっていわれてもやり方はいっぱいあるし、やりたいことによって
ベストの方法は変わるから回答しようがないw
>>194 それってFirefoxだけに起きる現象ではないでしょうか。
COMPLETEイベントが発生しないで読み込みが完了する場合があるようです。
PROGRESSイベント内で完了しているか判断してやるといみたいですよ。
204 :
Now_loading...774KB :2008/08/07(木) 01:33:02 ID:AI5Lffy4
------------------------------------------------ mcMother ┬ mcChild1 - mcGrandchild1 └ mcChild2 ------------------------------------------------ 上のような親子関係で removeChild(mcMother)した時に 各子、孫には this.addEventListener(Event.REMOVED_FROM_STAGE , onRemoveStage ) function onRemoveStage(event){ trace(event.target) } で削除を監視させておいた場合 mcChild1はEvent.REMOVED_FROM_STAGEが起きて、Traceされますが mcChild2 , mcGrandchild1はTraceされません。 removeChild(target) target以下のすべてにEvent.REMOVED_FROM_STAGEがいきわたる方法 もしくはヒントをいただけないでしょうか。 よろしくお願いします。
205 :
194 :2008/08/07(木) 11:26:46 ID:ODepELPj
>>200 意外なところで過去に作ったアプリのメモリリークの原因が分かりました。
>>203 そんなことがあるんですねー。
COMPLETEとERROR関連のリスナーを登録していれば、どれかが必ず呼ばれるという前提で、
ソフトを組んでいたのですが甘かったようです。
ありがとうございました。
206 :
Now_loading...774KB :2008/08/07(木) 13:20:40 ID:KxwulJ5Y
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) ラジオボタンのプロパティ変更(色変更)で質問です。 ○選択1 というラジオボタン(MC名:radioBtnM1)で、○内の背景が灰色,「選択1」を赤色に したく思い、MCのイベントとして下のASを書きましたが色が変更されません。 onClipEvent (load) { this.setStyle("themeColor", 0xCCCCCC); this.setStyle("Color", 0xFF0000); } ヘルプや、本「Flash ActionScript 逆引き大全550」(秀和システム)などを読みましたが 問題点が分かりません。 アドバイス願います。
>>206 _global.styles.RadioButton = new mx.styles.CSSStyleDeclaration();
_global.styles.RadioButton.setStyle("themeColor", 0xCCCCCC);
_global.styles.RadioButton.setStyle("color", 0xFF0000);
これタイムラインに書いておけばいいと思う
>>207 さんきゅう。出来ました。
日本負けた・・・
209 :
Now_loading...774KB :2008/08/07(木) 23:35:22 ID:FK5zdC5Z
質問させてもらいます。 private function init(){ var req:URLRequest = new URLRequest(filePath); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler); loader.load(req); } private function progressHandler(event:Event):void{ trace(event.bytesLoaded); } 上のような形でロードされたバイト数を表示しようとしたのですが、 bytesLoadedが未定義だといわれてしまいます。 ちなみにeventをtraceすると下のような出力結果が出てきます。 [ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=0 bytesTotal=28302] [ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=28302 bytesTotal=28302] どうすればbytesLoadedを表示できますか? 回答お願いします。
>>210 オーマイガッ
ありがとうございました。
環境:FlashCS3 パブリッシュ:ver8、AS2 mcにonClipEvent (mouseDown)でstartDragして、ドラッグできるようにしています。 その中にボタンのmcを置いて、getURLで別ウィンドウに外部リンクを開くようにしているのですが その際の挙動がおかしくて困っています。 外部リンクを新規ウィンドウもしくは背面のタブで開いた場合には問題ありませんが、前面のタブに開いて から、そのswfのあるページに戻るとstartDragが働いてしまっていて、解除できなくなります。 (ボタンMCの上にカーソルが乗った状態で、ドラッグされてしまうため、解除しようとクリックすると リンクを開いてしまいます) onClipEvent (mouseUp) でstopDragを指定しているため、前面にリンク先のタブが出てしまうことで、 mouseUpイベントが取得できずにこの現象が起こっていると思うのですが、対処法がさっぱりわかりません どなたかよろしくお願いします。
>>212 よくわからんのだけど、
ドラッグできるMCの中にボタンがあるという時点で問題があると思う。
MCの中にドラッグできるMCとリンクボタンという構成がいいんじゃない?
ようはリンクボタンのはじっこつまんでドラッグできるみたいな感じだよね?
で、MCのフレームにこれ書けばいいはず。
dragMC.onPress = function() {
this._parent.startDrag();
};
dragMC.onRelease = function() {
stopDrag();
};
lunkBtn.onRelease = function() {
getURL("
http:// ", "_self");
};
おれの勘違いならすまんです。
214 :
Now_loading...774KB :2008/08/08(金) 15:00:14 ID:f914dON+
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) ラジオボタンの一斉非選択で質問です。 ●選択1 ○選択2 ●選択3 ○選択4 ●選択5 ○選択6 最初に、6個のラジオボタンが上の状態であったとき、何らかの操作で、全部を ○選択1 ○選択2 ○選択3 ○選択4 ○選択5 ○選択6 の状態にしたく思っています(全部を一斉に非選択に)。 一応、ヘルプで該当する記述を探そうとしましたが、ラジオボタンの解説記述が 予想以上に多く、探し出すことが出来ませんでした。 アドバイスを願います。
215 :
212 :2008/08/08(金) 15:29:47 ID:UozHMj7i
>>213 ありがとうございます。
でもたぶんちがいます…。
ドラッグできるMCの中にボタンがあるという状態はあまり良くないことはわかる
のですが、実は地図の上にポイントがあって、
ドラッグできるMC=地図
リンクボタンMC=ポイント
なので、リンクボタンも一緒にドラッグできないと困るのでこういう作りなのです。
しばらく、_selfにして回避しておいて検討します。
>>215 だから、地図MCのなかにドラッグ用の透明でも背景でもいいけどMCを置いて
>>212 のスクリプトを地図MCのフレームに書けばいいんじゃないのか?
そもそもonClipEvent (mouseDown)は、Flashのどこをクリックしても発生してしまうのだから
こういう場面では使わない方がいい。
どうしてもというなら、マウスがリンクボタンの上にあるときは、ドラッグ開始しないとかの
条件をつけておく。
ActionScript3.0でフラッシュ自体の大きさをスクリプトの実行中に変えるにはどうしたらいいですか 例えばYoutubeの全画面化ボタンは、 以前は全画面ボタンを押すと新しい大きなフラッシュのページに飛んで全画面化を実現していましたが 今のYoutubeのプレイヤーは全画面化を押すとページが切り替わらずにフラッシュのプレイヤーの大きさが大きくなります こういう事をやりたいのですが検索をしてみても要領を得られませんでした ご存知でしたらご教示お願いします
確かにYoutubeのあれはやり方気になるな どうやってるんだろう
バイトコード読んで無いけどstage.displayStateだと思うよ
>>218-220 おいおい。本気か?ネタか。
めんどいからActionScript3.0 フルスクリーンでググレ
ページが変わらないってのはjavascript担当だとおも
adobe flash cs3を使用しています。 シークバーのついたflvファイルを制作して 無限にループできるようにしたいのですが、エラーが出たりなどで できません。 いろんなページを見て試しましたが全てエラーでした。 ActionScript3.0です。お願いします。
お前の人生がエラーだよ
Flex3、ActionScript3.0です sprite.graphics.beginFill(0x0000ff,1); sprite.graphics.drawRect( 0,0,100,100); のようにして描いたものに対して、 後から特定の座標に描かれている色を調べる方法はありますか? getObjectsUnderPointで特定座標に存在するオブジェクトを取得できる事はわかったのですが、色を調べる方法がわかりません。 実際実現したい事はspriteオブジェクトをドラッグした時に、その下の表示オブジェクト(dropTarget)の色を調べる事です。
ぱっと思いついたものだとBitmapData.draw(sprite)してgetPixel(x, y)
232 :
230 :2008/08/11(月) 16:43:38 ID:TsNnBnyt
>>231 ありがとうございます。
こんな感じで実装しました。
ただこれだと、dropTargetの負の座標に存在するオブジェクトが無視されるので、ちょっと問題がありますが・・。
private var target:DisplayObject
private var usedcolor:String;
private var spriteA:Sprite;
private function onMouseMove( evt:MouseEvent ):void{
target = spriteA.dropTarget;
var bmp:BitmapData = new BitmapData(target.width, target.height, true, 0);
bmp.draw(target);
var pixelValue:uint = bmp.getPixel(target.mouseX ,target.mouseY);
usedcolor = pixelValue.toString(16);
trace(usedcolor);
}
233 :
Now_loading...774KB :2008/08/12(火) 22:36:54 ID:lQlawo36
,lllii、 _,,_
.,,iilll!゙ll,,,、 __,,,,,,,,,iiiiiillll!!!lll!
.,,iill!゙°.゙゙!lii,,、 ゙゙゙゙゙゙゙゙゚゙lllll!
,,iill!゙°_,,,,,,,,,,l!lllii,,,、 llllll
,,iil!゙゙゙'llllllllllll゙゙゙゙゙゙ .゚゙!llllliii,,,,_ __,,,llllll,iiillllliii、
ill゙゙゛ _,lllll,,,,iiiiiliiil,゙゙゙゙゙゙゙゙゙゙゙" .lll!ll゙゙゙゙゙lllll ̄,,,,,,__
'lllllllll゙゙゙゙゙lllll ゙̄,ii,,、 llllll .゚゙!!llli,
'lii,,,, llll ,iill!!゙ lllll| ゙゙゙,,,,,_
゙゙!!ll llllill゙゙’__,,,,,,、 .__,,,,,,,,,,,illlllliiilllllllllll!!llllllll.
.,,,,,,,,,,,iilllllll!!lll!!!!!!!!!!!!!l! llll!!l!!゙゙゙゙゙゙゙ ̄
゙゚゙゙″
●このレスをみたあなたに金玉潰しの呪いをかけました!
今夜、あなたが寝るときや、オナヌーするとき、クラスのブサい女子が現れ、
あなたの金玉をつぶしにやってきます。
それが嫌なら
http://game13.2ch.net/test/read.cgi/mmo/1218279556/145- とその他のスレに、
「ちんぽこマーチ」という言葉と、このコピペを書き込んでください。
すると、玉潰しが現れません。
スルーしてもかまいませんが、潰されても知りません。
・・・・さあ、いざ、あなたのところにも・・・?
すごい待ってる!!!!ワクワクしてきた!!!!!
235 :
Now_loading...774KB :2008/08/13(水) 01:02:07 ID:VjClvpwj
flex3 で任意のタイミングでstage上のマウスポインタの位置を 取得するのってできますか? get_mouse_pos()みたいな関数でleaveしてたらエラーを返すようなの。
SoundMixer.computeSpectrum()を使って、グライコやりたいんですが、 何故か音より先にcomputeSpectrum()のほうに値が入ってきます。 というより、音が遅れてるのかなあ? これを解消する方法とかありませんでしょうか。 それとも、こんなもんだと諦めるしかないのかなあ・・・
System.useCodepage = true; すると未定義である可能性が高いプロパティって怒られるんだがどうしてなんだろうか。
useCodePageだから
241 :
Now_loading...774KB :2008/08/15(金) 01:50:04 ID:9Wa4Jo7N
DBの内容をPHPで取り込んでFLASHで表示させるということをしたいんですが PHP→FLASHの部分で躓いてしまいます <param name="FlashVars" value="$out"> ※$outの内容は『date0=aaa』 でFLASHに投げてFLASHで受け取りたいのですが oTxtName.text = unescape(_root.name); oTxtCount.text = _root.count; zyusin1=date0; ※zyusin1はダイナミックテキスト と記述したのですがうまくいきません どうすればよいでしょうか?
ActionScript3.0としてのモーションのコピーをして貼り付けたやつで 複数のインスタンスに同時に同じモーションをさせることは出来ますか? また同名のインスタンスを var mc:MovieClip = new MowieClip(); のようにして作ってコピーしてきたモーションをさせることは出来ますか?
>>241 value="$out"って$outっていう文字列を渡してるんじゃね
あと、ASのバージョンを書け
>>242 複数インスタンスの動作は当然可能
同名のインスタンス名は不可能
>>241 向こうでも一応レスあったよ
移動したなら移動したって書いたほうがいい
はじめて質問させていただきます。 AS2.0で、 ループ再生しているムービーを、クリックしたときに 一定のフレームまで再生をつづけて、 そのあと別のフレームに移動させるスクリプトはありますか? これによって、ループ再生してるムービーが違和感なく 次の動きに移ったように見せたいのですが、、
>>245 1つflgを作ってクリックでtrueにするとかの処理を作る
ループ再生している部分の一定のフレーム?の最後に
そのflgをみて、再度ループするか他の処理に行くかのif文入れとく
スクリプト作ってくれってのは無しでw
>>245 スクリプトがある、というより、そうなるようにAS書くってだけだけど
いくつか方法はあるよ。
クリックした時に、onEnterFrame発動させて、MCの_currentframeが
特定のフレームになるまで監視して別のフレームに移動させるとか
クリックした時に、フラグたてといて、特定のフレームにフレームアクションで
フラグの値がtrueならどこそこのフレームにgotoAndPlayしろって書いとくとか。
248 :
245 :2008/08/15(金) 12:27:16 ID:WCkH+01h
>246 >247 ありがとうございます。 いくつか方法があるようですね。 初心者もいいところですが、 FLGのほうはかろうじて調べればわかりそうです。やってみます! フラグを使えば、例えば他にもクリックごとに違う動きをとらせることも可能ということでしょうか。
>>248 >フラグを使えば、例えば他にもクリックごとに違う動きをとらせることも可能ということでしょうか
そうそう。
if(){}else{}とかswitchステートメントを使って変数の値に応じて処理条件をわけることができる。
ヘルプで条件演算とか条件の記述といった項目を見ると、解説があるので
書き方はわかると思う。
>>243 $outをdata0=aaaに変更して試してみたのですが
aaaと表示してほしいダイナミックテキストにはundefindと表示されてしまいました
ASは2.0、FLASHのバージョンはMX2004です
>>244 ありがとうございます
こちらに誘導させていただきました
>>250 zyusin1は変数名なのか、インスタンス名なのか、どっち?
zyusin1は_rootにあるんだよね?
>>251 zyusin1は変数名に設定していて_root上に配置しています
>>253 firefoxで動かしたいのでfirefoxで動作確認をしてます
DBを使うのでxamppで設定したアドレス(
http://localhost/ 〜)で確認してます
ファイルを直接指定(file:///C:/〜)で試してみても結果は変わりませんでした
よくわからんが、 DBの内容を取得するPHPを別に用意してechoで出力。 それをLoadするというのはダメなん?
>>254 embedタグでもちゃんと指定してる?
>>241 zyusin1=_root.date0;
だろ。
ヘルプ見ればすぐ済む話を
マルチまでしやがって引っ張りすぎだ。
258 :
Now_loading...774KB :2008/08/16(土) 03:08:01 ID:WtQOPKvq
>>255 それもやってみたのですがよくわからなくて…
PHPで取り出したDBの内容をFLASHに読み込むことができれば成功なんです
>>256 bodyタグの間は↓の様に記述しています
<param name="FlashVars" value="date0=aaa">
<embed src="test.swf">
>>257 できませんでした…
やはりembedタグの記述抜けが原因だったか…
>>259 できました!ありがとうございます!
>>260 長々と申し訳ございませんでした。
皆様ありがとうございました!
AS3、FlashDevelopです。 別のフォルダ階層にあるasファイルクラスの使い方を教えてください。 スタートクラスがMain.as、使いたいasファイルがforuda/Hoge.asとします。 ググってそれっぽいのを見つけてMain.asに import foruda.Hogeやimport com.foruda.Hoge と書いたのですが、どちらもうまくいきません。 前者は変な長いエラーメッセージ、 後者はcom.foruda:Hogeが見つかりませんと出ます。
>>262 そのフォルダをクラスパスに追加汁
変な長いエラーじゃわからんw
>>263 ありがとうございます。
もう一度探していて、Hogeファイルのpackage名に
forudaと付けると(フォルダ名と同じ名前)うまくいったのですが、
これのことでしょうか。
変な長いエラーは、通常はでる行番号が出なくて、↓の感じです。
A file found in a source-path must have the same package
structure 'foruda', as the definition's package, ''.
そのクラスパスの事だと思われます。
YoutubeのようにマウスがFlash上にあるときは、マウスホイールのスクロールを Flash側で処理する(ブラウザをスクロールさせない)ためにはどうすれば よいのでしょうか。 なぜかFlash内のコンテンツもブラウザも同時にスクロールしてしまい、 困っています。
>>265 過去ログ、せめてこのスレくらい検索しようと何故思わなかったのでしょうか。
267 :
265 :2008/08/17(日) 08:47:35 ID:BJbe5mL8
過去ログではうまく情報を見つけられませんでした。 探し方が下手なのかもしれません。 このスレでは上の方で「wmode="transparent"」の対策を見たのですが、 自分の環境ではこのパラメータを設定してもブラウザとFlashコンテンツが 同時にスクロールしてしまいます。 wmodeを外しても同じです。 またYoutubeのタグを見てみたところ、特にwmodeなどの指定はなかった ために、Flash/Flex内で完結した対応方法があるのかと思っていました。 もしもご存じでしたら、お教えください。m(_ _)m
268 :
前スレ985 :2008/08/17(日) 09:28:54 ID:YOp9Xplr
マウスオーバーしてる場合だけスクロール制御でスクロールさせないようにしてるんジャマイカ?
スクロール制御じゃなくて、ホイール制御でした。失敬。 マウスオーバーに関係なくホイール制御を奪うようにすればok
>>267 本題とは関係ないが、他人に手間を取らせるんだから、
自分が試したことを書いておくのは最低限の礼儀だよ
>>1 に
●質問する時は自分の環境を書く(AS2,AS3の別も)
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く
って書いてあるけど全然守ってない、つまり過去ログどころか
>>1 も読んでないわけだ
AS3です Sprite(container)が定位置(.x = 200)に来たら分岐条件で元の位置に徐々に.xする、 と言うのをやりたいのですが思ったとおりの挙動をしてくれません。 //移動フラグ if ( container.x >= 100) //左進行フラグ { migi = -1; hidari = 0; } else( 0 >= container.x ) // 右進行フラグ { migi = 0; hidari = +1; } var pos_x = migi+hidari; container.x += pos_x; 実行はTimerで連続処理させてます、 結果はSpriteが右に行ったきり戻ってきませんでした どの様にするべきでしょうか?初歩的ですが宜しくお願いします。
272 :
265 :2008/08/17(日) 19:30:14 ID:BJbe5mL8
>>270 さん
失礼しました。
●環境はAS3(Flex Builder3)
●実現したいこと
1 ブラウザ上のFlash領域にマウスがある場合はマウスホイールの
操作をブラウザに反映したくない。(ブラウザのスクロールを
させたくない)。Flashはスクロールさせたい。
2 マウスがFlash領域の外側に移動、もしくはフォーカスがFlashに
ある場合は領域の外をクリックすることでマウスホイールの
動作はブラウザにのみ反映したい(Flashをスクロールさせずに
ブラウザのみスクロールさせる)
●試してみたこと
1 このスレで得た情報のwmode="transparent"指定をつけたり外したり
2 以下のコードのようにマウスホイールのイベントを取得して
デフォルト動作のキャンセルをしようとしたがダメだった。
(event.cancelableがfalseでどうもホイールのデフォルト動作は
キャンセルできない?)
※コードは手元にないため正確ではありません。
scrollArea.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
private function onMouseWheel(event:MouseEvent):void{
event.preventDefault();
}
コードは今手元にありませんので、これ以上はお伝えできません。
ご存知の方おられましたら、よろしくお願いします。
>>271 else( 0 >= container.x ) // 右進行フラグ
↓
else if( 0 >= container.x ) // 右進行フラグ
とまあifが抜けてるだけ
ifが抜けるとelseが掛かるのは
( 0 >= container.x )
の部分だけとなり
{
migi = 0;
hidari = +1;
}
の部分がif else文と何ら関係なく
常に実行されてた訳
勉強中です。 onイベントハンドラを使用してイライラ棒的なものを作製しました。 ロールオーバーを使用して境界線を引いていますが 右クリックしたままだとonイベントが発生せずスルーされてしまうことが分かりました。 どうしたらマウスをクリックしたまま触れてもロールオーバーイベントを発生できるのでしょうか?
>>276 dragOver(ボタンの外から内側へ向けてドラッグすると)
併記してみて
>>277 ありがとうございます。
併記ですが、変な形の動く壁のシンボルに記述しています。
on (rollOver, dragOver) {
gotoAndPlay ("gameover");
}
ではスルーされたので、それぞれの命令を分離させて
on (rollOver,) {
gotoAndPlay ("gameover");
}
on (dragOver,) {
gotoAndPlay ("gameover");
}
のようにしてみましたがやはりClickしたまま状態だと抜けられてしまいました。
書き忘れましたがAS1.0です。
試しに、ボタンシンボルをいっこ作って同じ操作をしてみたんですが
もしかしてFlashの仕様として、クリック状態だとマウスオーバーとは認識されないんでしょうかね・・・
>>276 右クリックでメニューが出てる状態ではロールオーバーとかは制御不能なんじゃないかな???
右クリックされるのが嫌ならゲーム中の右クリックは禁止にするといいかもね。
右クリックしたと同時にゲームオーバー、みたいに。
メニュー欄で出来る設定なんかはゲーム中にいじる必要はないわけだし。
例えば、タイトル画面までは右クリックでメニュー開ける状態にしていつでも
設定を変える事ができるようにしておいて、ゲーム開始と同時に
『右クリック押したらゲームオーバー』イベントを反応するようにしておく。
ゲームオーバーになったら、タイトル画面に戻して、上のイベントは切っておく。
そんな感じで。
280 :
277 :2008/08/18(月) 04:38:56 ID:Wwewy3wd
ごめん実際試して見たけどdragOverじゃ駄目だみたいだねorz マウス座標使うか、hitTest使うかかな? ここまで書いた時点でリロードwおっとっと 右クリックは誤記だよね?w
>>280 すいません、左クリックの誤記でした;
左クリック押しっぱなしだとスルーで、
コンテキストメニュー出すとワープになりますねぇ。。。
やっぱり壁の縁にHitTest記載した隠しシンボルをずらり並べるとか
完全に角形化するしかなさそうですね・・・
待ってる間に実際グーグルでいろいろ調べてたんですが大体そうやっているみたいでしたし
・・・
朝早くからありがとうございました。
精進イタします<(_ _)>
Flex/AS3.0です 任意のタイミングで要素を追加、指定した要素を削除、全要素を列挙できるデータ構造として、 Dictionaryを使用したいと考えています。オブジェクトをキーとして、同じ物を値として保存するような・・・。 キーと値が同じなので、直感的に無駄な部分があるように思えて仕方ありません。 キーと値が同じようなDictionaryの使い方ってするものなんでしょうか。 用途のイメージです↓ var dict:Dictionary public function addObj( obj:Object ){ if( dict[obj] == undefined ) dict[obj] = obj; } public function rmvObj( obj:Object ){ if( dict[obj] != undefined ) delete dict[obj]j; } public function traceDict(){ for each( obj:Object in dict){ trace( obj.toString() ); } }
>>282 値を取り出すために同じ値を必要とするならば、値を取り出す時点でその値が手元にあることになり、なんのために取り出すのかと
284 :
Now_loading...774KB :2008/08/18(月) 17:45:20 ID:XiIEBvpl
>>283 値の取り出しはfor eachでのみ行うつもりです
用途は買い物カゴに商品を登録するようなイメージです
好きな商品をカゴに入れる→dict[obj] = obj
後で取り消したい場合はカゴから取り出す→ delete dict[obj]
最終的にカゴに入っている商品の総額を求める for each ( obj in dict ){ ...... }
やはり変な使い方でしょうか
285 :
Now_loading...774KB :2008/08/18(月) 17:49:09 ID:nfZWJrk4
長文失礼します。 ●環境 Adobe Flash CS3 ProfessionalでAS3.0使っています ●コード(2.swfに書き込んでいるコードです) import flash.display.MovieClip; import flash.display.Loader; import flash.events.EventDispatcher; var ldr:Loader = new Loader(); this.addChild(ldr); //Button_btn5をクリックで3.swfを読み込む this.Button_btn5.addEventListener(MouseEvent.MOUSE_DOWN,func01); function func01(e:MouseEvent):void { ldr.load(new URLRequest("3.swf")); } //テキストの表示 var theText:String; theText = "表示するテキスト"; var theTimer:Timer = new Timer(50);//タイマーの設定 theTimer.addEventListener(TimerEvent.TIMER, onTick); var myTextField:TextField;//以下テキストフィールドの設定 myTextField = new TextField(); ※以下x.y座標などの設定(略します) //フォーマットの設定(略します) myTextField.defaultTextFormat = myFormat; addChild(myTextField); ※以下Timerの設定(略します)//end ページごとにそれぞれswfファイルを作成して、ボタンのクリックによってそれぞれのswfに移動するコンテンツを作成しています。 2.swfを読み込んだとき、「//テキストの表示」以下のコードによって1文字ずつテキストを表示するのですが、Button_btn5をクリックして3.swfを読み込んだとき、2.swfで表示されたテキストが3.swfに表示 された状態となってしまいます。 3.swfやその他のswfを読み込んだときに、このテキストが表示されない状態にしたいのですが、どうすればよろしいでしょうか?swfファイルの読み込み方がまずいのでしょうか? 改善方法をご存知の方、よろしくお願いします。
>>284 なるほどーそういう使い方なら別に変ではないと思いますよ
>>285 addChild(ldr)をaddChild(myTextField)より後に書くか、
SetChildIndexでmyTextFieldの重なり順を変えるか、
func01でmyTextField.visible = false とするかしてみたらどうでしょうか
>>285 3.swfを読み込んだLoaderがTextFieldより深度が深くなってしまうという認識でいいですか?
Event.COMPLETEイベントを使って3.swfを完全に読み込んだあとにaddChildしたらいいかも
ムリやり消したいならvisibleをfalseにするとか
289 :
Now_loading...774KB :2008/08/18(月) 18:01:56 ID:nfZWJrk4
とりあえず、addChild(ldr)をaddChild(myTextField)より後に書くことにより解決しました。 お早い回答ありがとうございます。 3つの方法がありますが、どの方法が一番利便性が高いのでしょうか?
290 :
Now_loading...774KB :2008/08/18(月) 18:13:14 ID:nfZWJrk4
>>288 はい。TextFieldが一番前にきてしまうのです。
fanc01にmyTextField.visible = false;を加えたところ、ボタンをクリックすると
TextFieldは削除されたのですが、swfが読み込まれなくなりました…。
>>284 アホすぎで泣けたw
1000個のインスタンスのうち1つを選ぶのに
毎回毎回for eachで値を比較するわけだなw
>>292 まさか、そんな作りの買い物かご作ってるのか?
ASスレだから言うが、お前は無能だw
ごく普通の考え方だと思うぞ?しかも結構初歩的で教科書的な。 どう勘違いしてるやら?
291の問題点は日本語が読めないところだな
Timerクラスで100ミリ秒前後でループさせているのですが、時間が安定しません。 どうにか安定させる方法はないでしょうか。
>>296 無理。Flashプレーヤーはそのへんかなりいい加減なのよ。
高FPSにして、都度チェックするのと併用するのがポピュラーな手段だけど、それでも安定するとは言えない。
今後に期待するしかないのよ現状は。
>>297 ループする間隔を長くすれば 全体で見たズレは少なくなりますか?
>>298 >>297 は計測精度的なことをいっているが、
>>296 の言い草ではおそらく
時計の表示タイミングのことぐらいの話だろう?
もしそうならTimerクラスじゃなくて
時間計測開始時の起動後ミリ秒を取得してこれを基準ミリ秒として
EnterFrameイベント毎に現在起動後ミリ秒を取得して
そのミリ秒と基準ミリ秒との差分が1000ミリ秒以上なら
1秒経過として時計の表示を更新するとともに
基準ミリ秒を+1000ミリ秒するようにすれば
フレームレートがよほど低く無い限り
見た目でのずれは
人間の目では感じることがなくなるよ。
Timerクラスは「ほぼ」指定したミリ秒間隔で実行するから
適度な遅延などあいまいな処理に使ったりで、
時計などには向かない。
ヘルプにもそう書いてあったはず。
時計の表示の更新に使うと最大で約指定ミリ秒×2の
表示のズレがどこかで生じる。
>>294 どの教科書に自分自身をキーにして自分自身を索引しましょうって書いてあるの?
普通はキーとデータの組み合わせだが
>>295 日本語が読めても無能では困る
>>300 なにを勘違いしてるか分からんけど、こういうことでしょ?
ごくごく普通。
var cart:Dictionary=new Dictionary()
var item1:Object = {name:"商品A", price:500}
var item2:Object = {name:"商品B", price:300}
function addItem(item){cart[item]=item}
function removeItem(item){delete cart[item]}
function sum(){
var result=0;
for each(var item in cart)result+=item.price;
return result;
}
addItem(item1);
addItem(item2);
trace(sum()); //800
removeItem(item1);
trace(sum()); //300
実際の運用はCartクラスとItemクラスなんかを作って整理するのが多いんじゃないかな?
カートの中身の順番が不定な通販システム作るのかw for in やfor eachはもれなく列挙することは保証しているが、 その順番については不定
もう無能でいいよw つきあいきれんw
>>302 > カートの中身の順番が不定な通販システム作るのかw
> for in やfor eachはもれなく列挙することは保証しているが、
> その順番については不定
自分のせいで荒れてしまってますね。すみません。
>>302 >>284 で示した買い物カゴの例はあくまでイメージです。通販システムを作りたいわけではありません。
実現したいことはあくまで
>>282 に記述した
1.要素の登録
2.指定した要素の削除
3.登録された要素の列挙
です。
特定の要素を必要とする事はないので、ランダムアクセスは必要ありませんし、
中身の順番は不定で構いません。
どのような方法を用いるのが適切でしょうか。是非ご教授下さい。
MNV9t+Mgはかわいそうな子
質問です。少数値の計算は整数値よりも処理に負担がかかると聞いたのですが、毎フレーム少数値の計算を繰り返すとした場合、 それを防ぐために事前にMath.floorを使って整数にするときと少数のまま処理処理し続けるのではどちらの方が負担がかかるのでしょうか?
やってみればいいんじゃないでしょうか
309 :
Now_loading...774KB :2008/08/19(火) 20:07:34 ID:V18lMoZN
D:\Flash\sample.swfがswf、D:\Flash\sample.htmlがhtmlだとします。 これでsample.htmlへアクセスしたときにD:\Flash\sample.htmlというパスを動的に取得したいのですが、どうすればいいでしょうか?
>>309 javascriptを使えばできたと思います
この場合は無理だと思います
>>305 いまいちイメージが湧かないんだが、たとえばリストボックスとか、
複数のjpg画像で商品を表示しておいてそれを選択して確定ボタンを押すと
買い物かごエリアにその商品が表示されるとかなのか?
あと、指定した要素の削除にはランダムアクセスが必要だと思うぞ
Flash CS3/AS3.0で質問させてください。 Flash CS3にてMCシンボル oya、koをそれぞれ作成し、oya内にkoを配置、"ko_mc"と命名。 oyaに以下のクラスをリンケージ public class Oya extends MovieClip{ //コンストラクタ public function Oya():void { this["ko_mc"].koMethod(); } //メソッド public function oyaMethod():void { trace("oyaMethod() called"); } } koに以下のクラスをリンケージしました。 public class Ko extends MovieClip{ //コンストラクタ public function Ko():void{ } //メソッド public function koMethod():void { trace("koMethod() called"); //parent.oyaMethod(); } } 上記の状態で、Ko側からOyaのメソッドを呼び出したい場合、どのように すればよいでしょうか。 koMethod()でコメントアウトしている書き方では以下のエラーが出力されます。 未定義である可能性のあるメソッド oyaMethod を、静的型 flash.display:DisplayObjectContainer の参照を使用して呼び出しました。 以上、よろしくお願いいたします。
>>313 親をこうして、
public class Oya extends MovieClip {
public var ko_mc:Ko
public function Oya():void {ko_mc.koMethod();}
public function oyaMethod():void {trace("oyaMethod() called");}
}
子をこんなで
import flash.display.MovieClip
public class Ko extends MovieClip {
private var oya_mc:Oya;
public function Ko():void {oya_mc = Oya(parent)}
public function koMethod():void {
trace("koMethod() called");
oya_mc.oyaMethod();
}
}
で、[パブリッシュ設定]の[ActionScript3.0]の「ステージのインスタンスを自動宣言」
のチェック外せばいけるんじゃないかな?
parentは使わないで、Oya型のプロパティを用意して、そこにparentをOyaでキャストしたのを入れて置いて使う感じ
>>314 教えていただいた方法で意図した動作が可能になりました。
キャストという方法があるんですね。
後、「ステージのインスタンスを自動宣言」というパブリッシュ設定項目に
ついてもまったく認識してませんでしたので、キャストとともに
ちょっと勉強しようと思います。
ありがとうございます。
AS3.0です。contents.flaとControll.asを作りcontents.swf内のボタンを押したときの動作(再生と一時停止)をControll.as内に定義したいと思ってます。 contents.flaのフレームアクションは以下のとおりです。 import Controll; var obj:Controll = new Controll(); addChild(obj); bt_play.addEventListener(MouseEvent.CLICK, bt_playClick); bt_pause.addEventListener(MouseEvent.CLICK, bt_pauseClick); function bt_playClick(eventObj:MouseEvent) { obj.Play(); } function bt_pauseClick(eventObj:MouseEvent) { obj.Pause(); } 続きます。
317 :
316 :2008/08/20(水) 16:34:40 ID:RIt+z6DK
Controll.asの中身は以下のとおりです。 package { import fl.motion.Animator; import flash.display.*; public class Controll { static var animeobj = new Animator(); //一時停止 public static function Pause():void { animeobj.pause(); } //再生 public static function Play():void { animeobj.resume(); } } } 以上を実行すると ArgumentError: Error #2012: Controll クラスをインスタンス化することはできません。 at _fla::MainTimeline/_fla::frame1() とエラーが出ます。どのように直したらよいでしょうか。 よろしくお願いします。
おれはAS3は全く解らないから聞き流してくれかまわない。 勘で、addChildいらない。といってみる。
319 :
Now_loading...774KB :2008/08/20(水) 17:32:02 ID:XCrjyQ50
addChildももちろんいらないけどstatic関数呼ぶならインスタンスから 関数呼んじゃだめ。Controll.Play() Controll.Pause() とか。
質問します。エクリプス+ASDTで作成環境を整えたいのです。 mtascで文法チェックすると警告・エラーは英語で出されますが、 これを日本語化できるのであればヒントをください。 もしくは、Flash8basicを持っているので、 これのコンパイラを利用して文法チェックできないものでしょうか。 というかどんな環境で制作していますか。 windowsXP、エクリプスはv3.2、ASDTはv0.0.8ビルド5、mtascは1.0.0 プレアデス最新版(1.2.2p3)で日本語化しています。
321 :
Now_loading...774KB :2008/08/22(金) 00:06:05 ID:zkeJO+ji
MX2004で質問 トップから二階層目のMCにon(release)でトップの他のフレームに飛ぶ様にしてるんですが全く動作しません… 記述自体は間違ってないと思います。 MX2004って二階層目に記述しても無効みたいなルールがあるんでしょうか? 宜しくお願い致します
『君の担当地区の商品の売り上げが 伸び悩んでいると聞いたが』 「僕の売り方は間違って無いと思います。 この地域は商品が売れない雰囲気みたいなものがあるんでしょうか?」 『おめーのせいだよ!』
>>321 >記述自体は間違ってないと思います
まずはソースを書けwその上で先生方に間違いを指摘してもらうんだ
326 :
321 :2008/08/22(金) 12:56:09 ID:zkeJO+ji
なぜか二層目以降全く動作しないんですよね…(>_<) 記述自体は他の階層でも試したので問題ないはずです。 入れ子になってるMCを動かしてるからいけないんですかね?
わざわざこのスレで俺の記述は問題ないから動かない原因を教えろというのはおかしな話だな
>>326 問題ないなら動くだろwどうせ、path違うとかだろw
ソースと階層を正確にうpするかflaうp汁(2度目)
このスレにエスパー様はいらっしゃいませんか?
>>321 の一番の間違いというか問題はコミュニケーション能力の圧倒的不足
相手に理解してもらおうという意思が微塵も感じられない
パソコン初心者によくある 『何が分からないのか分からないので教えて』 ってのに良く似ているな。 ソース書けよ。おまいのソースなんて隠すほどのレベルじゃないぞ?
どうやら321はソースとマルチポストの意味が解らないみたいだな?w てかこれ超基本的質問スレとかでちょくちょく出てくるアレだろ? onハンドラ入れ子にしてるとかだろ?十中八九。
333 :
316 :2008/08/22(金) 16:48:57 ID:z22XAMEC
>>318-319 さん
どうもありがとうございます。結論から言うと解決しました。
addChildを無くし、static関数を正しく呼び出しました。
さらに、メインタイムラインの再生と停止は
クラス名.Play(root);で呼び出し、呼び出す関数にメインタイムラインを引数として渡しました。
Play(TimeLine:Object){
TimeLine.play();
}
ありがとうございました。
334 :
326 :2008/08/23(土) 13:31:00 ID:OkbceWQc
2ちゃんやってるキモオタ共うるせんだよw 無事一人で解決できました(^^) 妄想する事くらいしかできないオタクに聞いたのが間違いだったww
しょうがないよ 妄想しないと何言ってんのかさっぱりわからなかったし
321は結局なにも学ばなかったようだ。
>>334 記述間違い以外が原因だったなら
どう解決したか書いてほしいです
338 :
Now_loading...774KB :2008/08/24(日) 00:02:57 ID:OkbceWQc
原因は僕の頭にありました。フハ…フハハ ヒィー! てか2ちゃんって思ったより誰ものってこないんですね(ToT)
いろんな意味で残念だ
>>334 質問したときは、最終的に解決した方法を書くのが礼儀な
Windows Flash Pro 8 AS2.0 の環境で、 外部テキストファイル(内容:1_name=テスト)から値を読み込みたくて、 1フレーム目: _global.ranking = new LoadVars(); //宣言 _global.ranking.load("ranking.txt"); //ロード 3フレーム目: if(ranking.loaded == false) //ロード終了まで待機 { gotoAndPlay(2); } とし、その直後(4フレーム目)に、その値を確認しようと、 trace(_global.ranking.1_name); とするとシンタックスエラーが発生してしまいます。 -------------------------------------------------- ')' または ',' が必要です。 trace(_global.ranking.1_name); -------------------------------------------------- ダイナミックテキストボックスを用意し、変数に_global.ranking.1_nameを 設定すると、テキストボックスには"テスト"と出てくれます。 解決方法、お分かりの方おられましたらよろしくお願いします。
>>341 変数名は数字からはじまっちゃダメ。
ヘルプなどで識別子についてのルールを読むように。
それと、せっかくLoadVars使ってるんだから、フレームループじゃなく
リスナーで読み込み完了を検知して処理するほうがいいと思う。
最初の読み込み中に何%読み込んだかゲージが伸びていくようにしたいんですが、 これは別のフラッシュを用意すればいいんでしょうか? 実装方法が書いてあるページが見つけられませんでした・・・。
>>342 おお どうもありがとうございます。
基本的な所でのミスで、ご迷惑をお掛けしました。
リスナーについては、また調べてみます。
本当にありがとうございました。
345 :
334 :2008/08/24(日) 23:48:59 ID:f8zvjK33
>340 礼儀なって・・・・てめーら何も教えてくれてねーだろwww あつかましすぎんだよww 前も色々教えてやったのに礼の一つもなかったし2ちゃん住人には教えたくないわ
2ちゃんどうこうに限らず、こういう所は基本的にボランティアなんだから、 こっちが何かをあげたから何かを貰うというような考えは通じないんだよ。 お礼がないと何もしないのはボランティアじゃないし、行為を強要するのもボランティアじゃない。 そういうことがしたいなら、有料で答えが返ってくるサービスがあるから、 これからはそちらを利用するといいんじゃないかな?
>>343 プリローダー flash で検索。
パーセントテキスト表示が出来てるならそんなに難しくないと思う。
>>345 >>321 の質問には
>>322 が正確に解答してるんだがw
それ以前にzkeJO+jiはマルチポストしたまんますっとぼけてるんだがw
2chにも一応ルールがあるからルールを理解する気がないやつは来なくていいぜ。
>>347 ありがとうございます!
調べてみます
読み込みバーで検索してました
349 :
Now_loading...774KB :2008/08/25(月) 09:26:09 ID:AqR+AMLl
AS3で開発しています。 1秒に1回、URLLoaderでデータをダウンロードするアプリを作成しているのですが、 1回ごとにURLLoaderをnewしているので、使用メモリがガンガン上がっていきます。 物理メモリを食いつくしたぐらいのタイミングでガベージコレクションされるのですが、 その間CPU使用率が100%になり、処理が止まってしまいます。 URLLoaderをnewしないで再利用しようとしましたが、load関数を呼んでもリスナーは呼ばれませんでした。 何か良い方法はないでしょうか?
>>349 設計からして間違ってるだろw
1秒に1回DLしなければならないって仕様は必要なの?
配列に入れといてロード完了したのから使いまわせば?
352 :
Now_loading...774KB :2008/08/25(月) 19:34:29 ID:iY8PIZ+U
flaファイルを開かなくても、swfファイルの縦横サイズが簡単にわかる方法はありませんか?
>>352 このスレで聞くって事はASで縦横サイズ調べたいってこと?
354 :
345 :2008/08/26(火) 00:11:28 ID:BFdvFxed
お前ら俺のちんぽしゃぶれやウヒィ ワイは猿や…
ここで聞くことじゃないかもしれませんが、AS3のソースを難読化するツールを作ってます 文字列部分をてっとり早く難読化するにはどうしたらいいのでしょうか?
352ですが、スレ違いでした。失礼しました。
>>355 手っ取り早くやるなら文字コードの数値表現に置き換えるとかじゃない?
\u00xxみたいな
>>355 ちょうど自分も作っているとろこだ。
ひとまずは、コメント、改行、スペース消し辺り。
ファイル、関数、変数名変換は少し苦労しそう。
関数の内容展開も実装したい。
>>355 たしかニコニコ動画で難読化ツールを作る動画が上がっていたような希ガス
難読化というよりかは、デコンパイラ(というのが正しいのか解らんがその手のツール)
を騙すような仕組みになっていた。
その辺を作れる人はバイトコードでいぢれるそうで、正直ついていけんw
>>357 ありがとうございます!
やってみます
>>358 おお、仲間が!
簡単だと思ってはじめたら継承とか配列からのメンバ呼び出しとかで
けっこう大変ですよね
>>359 ぬは、そんなものが・・・
バイトコードでいじれるとはすごい
361 :
349 :2008/08/26(火) 11:07:57 ID:b+xqqrEg
>>350 サーバ上のDBにたまっていくログをリアルタイムに表示するアプリなので、
他に手段が無いのです…
>>351 使い回してもload関数を呼ぶだけでメモリを消費するみたいです。
362 :
Now_loading...774KB :2008/08/26(火) 12:57:52 ID:BFdvFxed
みそっぱちツールって知ってます? あれ使ったらASなんて覚えなくても一発ですよ
AS2でかいてます 外部読み込みのテキストのx行目からy行目までを表示させたいの txt.text.split("¥r")とかで総行数とか調べれるのはわかったけど 結局どうしていいのかわからんです たちけて
text1〜text10までの変数に一度に代入したいのですが記述がうまくいきません。 for(i=1;i<=10;i++){ eval("text"+i)=a;//この部分が駄目でした } 左辺のevalが原因と思いますが、他に良い方法が思いつきません。 text1=a; text2=a; …… とやっても良いのですが行が増えるのであまりしたくないんです。分かる方がいれば是非お願いします。
>>365 即レスありがとうございます。おかげさまでできました!
this["m"+i]=a
上の記述でできました!ありがとうございました。
>>320 です。みなさんのAS作成環境について教えてください。
もう一度お願いします。
>>363 gaibuTxtLoad = new LoadVars();
gaibuTxtLoad.load("gaibu.txt");
gaibuTxtLoad.onData = function(dat) {
if (dat.indexOf("\r\n") != -1) {
gaibuTxtLine = dat.split("\r\n");
} else if (dat.indexOf("\n") != -1) {
gaibuTxtLine = dat.split("\n");
} else if (dat.indexOf("\r") != -1) {
gaibuTxtLine = dat.split("\r");
}
trace("2行目から3行目まで:"+gaibuTxtLine[2]+"\n"+gaibuTxtLine[3]);
trace("総行数:"+gaibuTxtLine.length);
};
369 :
368 :2008/08/26(火) 17:07:42 ID:A4l4OPRU
trace("2行目から3行目まで:"+gaibuTxtLine[1]+"\n"+gaibuTxtLine[2]); だった
>>369 それじゃ何百行と取り出したいようなとき酷いことになるし、
普通にsliceしてjoinの方が楽じゃない?
371 :
368 :2008/08/26(火) 18:27:12 ID:A4l4OPRU
こうですね //2行目から3行目まで startLine = 2; endLine = 3; out = gaibuTxtLine.slice(startLine-1, endLine); trace("2行目から3行目まで:"+ out.join("\n"));
372 :
Now_loading...774KB :2008/08/26(火) 18:29:25 ID:BFdvFxed
みそっぱちツール使ってみました! こんなツールあったんですね
共通関数(common.as)を作りました。 ↓↓↓↓↓↓ public class common { public static function hoge():uint { return 123; } } 利用する側(同じフォルダ)でimport common;って書いて hoge();したんですが、 「未定義である可能性が高いメソッドhogeの呼び出しです。」 と出ます!! どこがおかしいのでしょうか!?
>>374 package {
public class common {
・・・・・
}
}
って書いてますが・・・・
同じフォルダならこれでいいのかなって思って・・・
common.hoge();ってやった?
>>376 common.hoge();で出来ました!
でもできればhoge();ってやりたいなあ〜!??
getとかsetとかって書けばできるんのかな・・・・・
1つのファイルで1個の関数しか出来ないけど Hoge.asってファイルで package { public function Hoge():uint { 処理; } } とやれば Hoge();の呼び出し出来るようになるよ
↑classにせずに関数だけのファイルってことです
>>378 できた〜!! な・なるほど〜・・・
関数沢山ある場合はその数分ファイル
作らなきゃいけないってことですね・・・・!?
>>377 getter/setterはメソッドをプロパティのように扱えるようにするためのものだよ
>>378 ロジック的にそれはどうなんだろうか・・・w
>>380 そもそもなんでcommon.hoge()と書きたくないの? (ちなみにクラス名の最初は大文字で書くこと)
確かにタイプ量が多くなってイヤとか、コードが長くなるとかあるけど
あとから読み返したときに突然hoge()なんてでてきたらわけわからなくなるよ?
common.hoge()と書くことによって一発でcommonクラスのstaticメソッドだと判断することができる
可読性ってのは結構大事だよ
あと、FlashCS3はカスだからできないけど、FlexBuilderやフリーのFlashDevelopなんかは
カスタムクラスのコード補完機能がついてるからタイプ量はあんまり変わらないはず
383 :
Now_loading...774KB :2008/08/26(火) 21:31:23 ID:YS2tUzSn
>>382 た、確かにw
でも頻繁に使う関数(可変引数を渡すTrace)とかはこうしちゃってる
>>361 そういうのはソケットつかうんじゃねーのか?
386 :
Now_loading...774KB :2008/08/27(水) 11:15:46 ID:J/nr7fkD
actionscript3.0を使用しています。 コード(0.swfに記述しています) import flash.display.MovieClip; import flash.display.Loader; import flash.events.EventDispatcher; var ldr:Loader = new Loader(); this.addChild(ldr); this.stop(); this.start_btn.addEventListener(MouseEvent.MOUSE_DOWN,func01); function func01(e:MouseEvent):void { ldr.load(new URLRequest("1.swf")); } //end このとき、startボタンをクリックすると0.swfの上に1.swfが重ねられて表示されますが、1.swfを読み込んで表示した後に、1.swfの下にある0.swfを消去する方法はありませんでしょうか? ご存知の方、よろしくお願いします。
>>383 Flash使ったこと無いけど、
全面白いオブジェクトを手前に表示(透明状態)させておいて、
そのalpha値を画像の切り替え前後で急激に変化させてるんじゃないかなあと想像
画像: 画像A → 画像B
白いオブジェクトのalpha値: 0→0.5→1→0.5→0
想像なので試してもないし保証も無し
>>383 プロパティのカラー 詳細でアルファとRGBの値を弄ってるだけなんじゃ?
blendとalphaっぽいね
390 :
Now_loading...774KB :2008/08/27(水) 12:32:30 ID:Z00E6Rmg
なるほど。。。 前者の方法だと例のサイトのように抑揚がつかないんです。 後者だとFPSがかなり下がってしまって。。。
ActionScript3.0で質問させてください。 16進数を扱う場合には0xFFFFFFのように 先頭に0xをつけることで16進数であることをあらわしますが 2進数を扱いたい場合はどういった表記ルールがありますでしょうか。 FlashCS3のヘルプを見てもそれらしい記述が見当たりませんでした 初歩的な質問で申し訳ありませんがお教えいただけないでしょうか。
>>390 キャッシュみると別ファイルだから、スクリプトでリアルタイムに変化させずに
単にムービーに変換したのを流してるぽい
>>391 ないんじゃない?
AS3から8進数の0表記もなくなったって書いてるし。
393 :
Now_loading...774KB :2008/08/27(水) 13:13:40 ID:g2p94euP
394 :
391 :2008/08/27(水) 14:22:10 ID:nMjtOeRo
>>392 やはりないんですね。
チョット別の方法を模索してみます。
レスありがとうございました。
395 :
Now_loading...774KB :2008/08/27(水) 17:09:54 ID:Z00E6Rmg
383です。 加算やブレンドで表現出来ました。 例のサイトの様なトランジションをつけて背景に読み込んだんですが、サイズをステージの大きさに合わせて可変させるようにすると、かなり処理が重くなって染まします。 AS2で書きました。 リサイズ処理 this.onResize = function() { boxResize(); }; Stage.removeListener(this); Stage.addListener(this); function boxResize():Void{ var boxRate:Number = imgBox._height/imgBox._width; enterBtn.posY = Math.floor(Stage.height-320); enterBtn.posX = Math.floor(Stage.width-122); imgBox._width = Stage.width; imgBox._height = Stage.width*boxRate; if(Stage.height>imgBox._height){ imgBox._height = Stage.height; imgBox._width = Stage.height/boxRate; } }; imgBoxというのに作ったムービーを読み込んでます。 他のちょっとした動きのメニューなどがかなり重くなってしまいます。
396 :
Now_loading...774KB :2008/08/28(木) 00:16:56 ID:HIPE1BF0
フラッシュでおまんこに肉棒がつきささるフラッシュをつくりたぃんですがどうしたらいぃんですか? あふれ出すマン汁もリアルに表現したいです
>>394 むしろ2進数表記しなくちゃいけない場面ってどんなの?
何がしたいかが分かれば違う解決法も普通に提示できるかもしれない
>>395 AS3に切り替えるってのはだめ?
少なくともAS2で同じ処理書くより断然速いよ
398 :
394 :2008/08/28(木) 10:37:29 ID:D4/u9BBw
>>397 AS3.0の学習を兼ねてゲーム的なものを作ってます。
やりたかったことは、キー入力に対応したキャラの移動処理の部分で
斜め移動(2キー以上同時入力)の検出に2進法をつかった以下のような
処理を考えてました。
var val:Number = 0;
if(右キー押下なら){
val += 0001;
}
if(上キー押下なら){
val += 0010;
}
(中略)
swith(val){
case 0001:
右移動処理
break;
case 0011:
右上移動処理
break;
(後略)
同様の処理は10進数でも可能だったので、現在はそのようにしております。
他にスマートな方法がありそうにも思えるのですが…。
>>398 こんなのはどうでしょうか
参考程度にどうぞ
const up:int = 1;
const right:int = 1 << 1;
const left:int = 1 << 2;
const down:int = 1 << 3;
var val:int;
//例1:左下同時押し
val = left | down;
//例2:右キー単独押下
val = up;
//例3:上キー押下追加
val |= right;
switch(val)
{
case right:
//右移動処理
break;
case right | up:
//右上移動処理
break;
}
if(右キー押下なら && 上キー押下なら){ 上移動処理; 右移動処理; } じゃだめなん?
401 :
399 :2008/08/28(木) 11:11:48 ID:sCtlFI1r
すみません訂正 //例2:右キー単独押下 val = right; //upになってました //例3:上キー押下追加 val |= up; //rightになってました
>>400 レスありがとうございます。
その方法だと斜め移動時と上下左右移動時を比較したときに
1フレームあたりの移動距離が変わってしまう(斜め時の方が速くなる)のが
今作成中のものでは問題となるため、今回は採用できませんでした。
>>399 レスありがとうございます。
ビット演算については正直放置してたのですが、調べてみたところ
もともとの処理のイメージに近い記述が可能なようですね。
ビット演算の用法についてチョット学習をすすめていこうと思います。
403 :
Now_loading...774KB :2008/08/28(木) 22:35:54 ID:rtj/VMTN
>>397 AS3は書けないんですよね。。。これを機に勉強するようにします。。。
404 :
Now_loading...774KB :2008/08/29(金) 04:41:10 ID:XbYxuVwl
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) PCへの負荷で質問です。 ある処理を0.05秒毎にやりたいとき、その処理をフレームアクションで書いて20fpsと する時と、setInterval()で50ms毎に行う場合とでは、どちらがPCの負荷として軽く なるのでしょうか? Flash開発用PCはCore2Duoの3GBなので多少の負荷には耐えられますが、そうで ないPCの動作を考え、質問しました。
>>404 負荷自体は変わらんが、ある処理が重い画面描画を伴うとかだと
当然fpsの数値が影響する
>>404 負荷がかかった場合を考えるなら、どちらが軽いかなんてどうでもいいことではなく、
実際に負荷がかかっても問題ない動きにするにはどうしたら良いかを考えた方がいいよ
想定する低スペックなPCがなくても、重い処理の代わりに適当な待機処理を時間を変えながら挟んで、
長くかかってもちゃんと動くかどうかシミュレートすればOK
408 :
Now_loading...774KB :2008/08/30(土) 01:12:05 ID:PuG3gNuJ
WindowsXPでFlash8-Proを使っています。 ランダムな値を監視して、それが基準値を超えたら音が鳴るようなASを書きたいの ですが上手くいきません。下は基準値を80にして、Beep音を鳴らすようにしています。 (すいません、一応ASの全文を貼りました) Sound0 = new Sound(); Sound0.attachSound("beep.wav"); // this.onEnterFrame = function() { volume0 = Math.random()*100; //0〜100の間のランダム値 // if (volume0>80) { trace("Sound0"); Sound0.setVolume(volume0); //音量はそのときのランダム値 Sound0.start(); } }; どうしたら良いでしょうか? beep.wavのリンケージは確認しています。
410 :
408 :2008/08/30(土) 02:50:49 ID:PuG3gNuJ
>>409 レス有難うございます。
原因が分かりました。リンケージ確認が不十分でした。
AS上では Sound0.attachSound("beep.wav"); と書いていますが、
識別子の方に拡張子「.wav」を書いていませんでした。
よくRPGの戦闘突入にガラスが割れた感じで戦闘に入るエフェクトがあると思いますが、あれをAS(SWF7)で再現することはできますか?検索の仕方が悪いのかいくら検索してもでません。分かる方がいればお願いします。
それはASの問題ではないと思いますが? ゲーム製作技術等で聞いて下さい
ASが分からないからこのスレで聞いているんですが・・
>>412 は頭悪杉
ゲームのエフェクトをFlashで
やりたいってことだろうよ
あんなエフェクト、AS使わなくても出来るじゃん ASよりマスクを活かしたほうが楽だと思う
アルゴリズムの問題だからそういうスレで聞いた方が早いだろ
>>415 のいうようにASじゃなくてもできるし、どちらにしてもスレ違い
>>414 は頭悪杉
マスクでどうやってやるんだ? 複数のMCが置いてある状態から 全体をガラスが割れる感じにするんだろ? BitmapとMatrix使って、 計算速度を考えるとAS3でやるのが一番で SWF7じゃBitmap使えないから無理だと個人的に思うのだが
てかソフト自体のエフェクト機能にそういうのあった気がするぞ
良く分からんがパーティクル表現のこと? 検索が下手なのは、質問が下手ってのと同じだろうから、 語彙力身に着けるのが近道。
リアルタイムでレンダリングしたものを
テクスチャにして飛ばすなら
Flash8でないと無理。
>>417 AS1でもAS3でもAPI内部の処理速度は同じだろ。
>>420 AS1,2とAS3とではplayerのエンジンが違う
422 :
Now_loading...774KB :2008/09/01(月) 08:44:11 ID:sqP7dL9d
質問です。 フルFlashサイトを作っているんですが Flashファイルの1フレーム目にnoborderを記述し、htmlファイルには縦横100パーセントで設定しているんですが、自分のブラウザでみたらちゃんと縦横きれいに100パーセントで表示されてるんですが、他のブラウザで見たら大きく拡大して表示されてしまいます。 どなたかこの様な現像の解決方法をご存じないでしょうか? 宜しくお願い致します
423 :
Now_loading...774KB :2008/09/02(火) 14:01:00 ID:P0oI6p2k
actionscriptのインクリメントで2ずつ増やす方法
for(i=0;i<2;i++)n++;
>>422 Flashのバージョン
自分の使っているブラウザ名
うまく表示されない他のブラウザとはどれか
ちゃんと書こうね
426 :
Now_loading...774KB :2008/09/02(火) 17:59:31 ID:P0oI6p2k
424どういう事ですか?nの値?? i=++i; ←こんな感じでお願いします。
i += 2; ↑こうゆう事?
428 :
Now_loading...774KB :2008/09/02(火) 23:09:14 ID:oiCr7SLs
427ありがとうそんな感じ( ^∀^)
429 :
Now_loading...774KB :2008/09/03(水) 02:32:49 ID:GoFVdVhF
質問です。Flex 3 SDK+AS3でやっています。 public static const list:Object = { a:"xx", b:"yy", c:"zz" }; これをa->b->cの順でfor文で走査したいです。 arr:Array = ["a", "b", "c"];という配列を作って、list[arr[i]]としたら出来るのですが、 この配列を定義するのが冗長な感じがします。 何か他のやり方があれば、ご教授いただきたいです。 よろしくお願いします。
>>429 キーの部分の順番付けが無いとどういう順番で表示するかわからんだろ
連想配列使うのなら冗長では無く必須
>>430 そうでしたか・・・。お馬鹿な質問をしてしまってすいません
ありがとうございました
import flash.display.BitmapData; var MainBmpData:BitmapData= new BitmapData(100,100); var main:MovieClip = this.createEmptyMovieClip("MainMC", this.getNextHighestDepth()); MainMC.attachBitmap(mcPath.palette.MainBmpData, MainMC.getNextHighestDepth(), true); この部分を、 main.attachBitmap(mcPath.palette.MainBmpData, main.getNextHighestDepth(), true); こう書くと「タイプが一致しません。」とエラーが出るのはなぜなんでしょうか。
433 :
432 :2008/09/03(水) 10:44:37 ID:ciIfMOKQ
すいません。書き忘れましたがAS2.0です。
>>432 何故といわれてもそのまま「タイプが一致しないから」と返すしかないだろw
引数の型をチェックするとか、traceしてちゃんと値が入ってるか調べるとか汁
環境)OS:WinXP-Pro,Mem=2GB,ソフト:FlashCS3-Pro(Player9) hoge_mc.addEventListener(Event.ENTER_FRAME,function(){ /* スクリプトの記述 */ }); 質問です。 この ENTER_FRAME のイベントを removeEventListener することって可能ですか?
436 :
432 :2008/09/03(水) 11:38:13 ID:ciIfMOKQ
>>434 trace(main);
//_level0.MainMC
trace(typeof(main));
//movieclip
とくに問題ないような気がするのですが
おれは何か勘違いしてるんでしょうか
>>437 ありがとうございました。助かりました。
AS3の文法について質問ですが、以下のようなスクリプトが例文で良く出てきます。 hoge.addEventListener(MouseEvent.CLICK, onMouseClick); function onMouseClick(e:MouseEvent):void { hogehoge.x = mouseX; //ここは何でも良いんですが } この関数名の次の引数「e:MouseEvent」について、その関数内で変数(e)を使っていないのに ほぼ毎回必ず記述されていますが、これは文法上の決まりなんでしょうか? これを書かないことで(使わないのに)、何か整合性が取れなくなるんでしょうか?
あと、これはどうでも良いことなのかもしれませんが、変数の宣言でintとuintだけ 頭文字が小文字なのは何か理由(とか逸話)があるんでしょうか? NumberとかBooleanとかStringとか全部頭文字が大文字なのにこの2つだけ小文字なのが気になります
軽く答えようと思ったけど、うまい説明が浮かばなかった 普通にAS3を使いこなしてるつもりでいたけど適当にやっていたようだ・・
ECMAScript 準拠でそうなってるんだよ うん。適当に言ってみた
>>439 文法上の決まりというよりは、サイト上の書き方を統一しているだけでしょう。
文法上はfunction onMouseClick():void{...としても問題なく通ります。
AS3の元となっているECMAScriptでは本来引数のない関数に値を渡すこともできますし、
その関数内で渡された引数を処理することもできるような仕様になっています。
>>440 伝統的なものです。AS3に限らず大抵の言語が何らかの言語の影響を受けて作られています。
完全なオブジェクト指向でない言語ではintやuintはクラスではありませんでした。
現在でもこれらはプリミティブ型と呼ばれ、他の型とは振る舞いが異なる場合があります。
intやuintのように伝統的な理由で小文字となってる型は、他にvoidがあります。
voidはundefinedという値のみを持つ特殊な型ですが、これも由来は他言語です。
レスくださった方ありがとうございます。 慣習や伝統的な意味合いが強いんですね。勉強になりました。 確かに使わなくても引数を書いておいた方が、その関数がどこから 呼ばれているのかを探すときにわかりやすいような気もします。
>>444 書かなくてもコンパイルは通った
でもイベント起きなくなった
いいオチだw
そりゃイベントディスパッチャに渡すeventがなければ メッセージ走らんだろう。
>>446 書き方が悪かっただけじゃないですか?
今手元で簡単に試したけどコンパイルは通るしイベントも起きます。
というかこの書き方で動かないようじゃECMAScript準拠が嘘になっちゃう。
>>448 この場合、関数定義での仮引数はあくまで仮引数であって、
EventDispatcherに渡すeventオブジェクトの実体作ってるわけじゃないですよ。
ついでに書けば
>>444 に書いてあるように引数のない関数を登録しても、
値はちゃんと渡されるのでargumentsを使えば普通にeventにアクセスできます。
・・・わりと一般的な知識だと思ってたので
>>446 見てちょっと焦ったw
>>446 なんか書き方悪いのかな・・・?俺も動きそうな気はするんだけど
これではイベント起こらない。e:MouseEventって書いたら起きる
ちなみにFlex SDK 3.1 AS3.0
public class Main extends Sprite
{
public function Main():void
{
var sp:Sprite = new Sprite();
sp.graphics.beginFill(0xaaaaaa);
sp.graphics.drawRect(100, 100, 200, 200);
sp.graphics.endFill();
sp.addEventListener(MouseEvent.CLICK, spClickHandler);
addChild(sp);
}
private function spClickHandler():void
{
FlashConnect.trace("mouseclick");
}
}
as1での質問です。 変数を含むムービークリップのフレーム数を取得したり 指定したフレームへジャンプさせたりしたいんですが for(i=1;i<=5;i++){ tellTarget("/inu"+/:i){ trace(_currentFrame); gotoAndPlay(12); }; こういった書き方では出来ないんでしょうか? 初歩的な質問で申し訳ないですが、どういう事を 勉強すればいいかなどでも教えていただければと思います。 今まではthisを使っていたんですがflashlite1.1用なので 使えないみたいで…よろしくおねがいします。
453 :
452 :2008/09/05(金) 12:52:47 ID:q/gLz4Ls
452の質問をした者です。 もしかして、flash4の段階では telltargetのターゲットに変数を入れることは出来ないんでしょうか…。
FlexBuilder3でFlex3での質問です。 カスタムコンポーネントで設定した関数から 親コンポーネントの関数を呼びたいのですが、どうすればよいのでしょうか? parentDocument とか parentApplicationとか使ってみたのですが 目的が違うもののようです。 よろしくお願いします。
>>452 CS3のドキュメントみたら
「Flash Lite でストリングを連結するには、次の例に示されているように add 演算子を使用します。」
とのことなので
tellTarget("/inu" add /:i){
FlashLiteはよく知らんけど、試したところ一応これで動いた
>>454 よくわからんけど単純にparentでは駄目なの?
親の方でaddChildしてからじゃないとnullだけど。
親の表示リストに含まれている場合は " 子オブジェクト.parent "で親オブジェクトが呼ばれるはずだけどね
>>456 ,457
返答ありがとうございます。
parentでもだめなんですが、何か根本的な勘違いをしていそうな気がしています。
もう少し調べてみます。
ありがとうございました。
>>451 それがダメなのは登録しているのが関数ではなくクラスに所属するメソッドだからです。
ただの関数として宣言したものや、無名関数は引数がなくてもイベントが起きます。
Functionクラスにも書いてありますが、メソッドと関数は厳密には別物です。
自己解決しました。 parentAppricationのドキュメントみると Applicationを使用すると書いてありました。 やってみたところうまくいきました。 ありがとうございました。
Math.min(64, a << 1 ) の << はどういう意味ですか?
aを1ビット、レフトシフトしたものと、64とを比べて小さい方を返す
うう、ごめん。<<だけでいいのか。 <<は左側にビットシフトする。 普通は倍になるけど、32ビットからあふれたビットがどうなるかは知らん
>>459 動きました。ありがとうございます
理由がいまいち分からないので勉強してきます
キャリーフラグが立つ
>>463 俺の入っちゃいけない領域だってことは分かったw
Tks
携帯ゲームやデコメアニメが作りたいんですが、 何かお勧めの本ってありませんか?
468 :
bgcolor :2008/09/08(月) 01:31:50 ID:/E5TQ3To
こんばんは、質問です。 ActionScriptでHTMLの背景色を変更したいと思っています。 外部のJavaScriptファイルをGetURLで 読み込んでくるところまで解り、 試したのですがうまくいきません。 JavaScriptファイルの記述の仕方は下記で合ってますでしょうか? (すごく短いので絶対足らないと思いますが・・・) ちなみに、FlashMX、WINDOWS XPです。 すみませんが、お教えください。 function color() { document.bgColor = "#ccffcc"; }
>>468 JavaScript側はそれで背景色が変わると思います
外部のjavascriptファイルってのがいまいち分からないんですが
getURL("javascript:void(document.bgColor="#ccffcc")")
これで出来ませんかね
470 :
bgcolor :2008/09/08(月) 13:19:20 ID:UGN1o8eb
>>469 さま
ありがとうございます!できました!!
ここ何日か、本やネットを探しまくってましたが、やっと解決できました。
それで、情報が錯綜して勝手に外部のjavascriptファイル.jsファイルを
作ると思い込んでいました。ありがとうございました!
ずっと引っかかってる事があるんですけど var a:Array = new Array(); for (var i:uint = 0; i<100; i++) { a[i] = i; } これと var a:Array = new Array(); for (var i:uint = 0; i<100; i++) { a.push(i); } これは同じですか? 使い分けとかありますか・・・?
>>471 内部実装がどうなってるか分からないから確実なことは言えないけど、
普通に考えたらpushの方が実行速度は速いと思う
添字アクセスの場合、iがlengthの範囲内かチェックする処理が入った後に領域の拡張が行われると思うけど、
pushであれば範囲チェック無しで拡張が行えるわけだし
ただ、配列の長さがわかってるならnew Array(100)とした後に添字アクセスした方がより良い書き方だと思う
pushは数がわからないような場合に使えばいいんじゃないかな
そりゃ他言語の知識だろ
ASの配列なんてObjectのhashを再利用してるだけだし。
その通り。領域なんて考えねーし。lengthなんてチェックしねーし。 クラステーブルにアクセスしない分速いし。 つーか速い遅いで論じてる時点でおかしな話だ。
クリックした時に変化(A→B)するボタンを マウスを離してからも、Bのままでいるには、どうすりゃいいんですか?
マウスボタンを押したまま、その領域を離れた場合ってことか?
479 :
471 :2008/09/09(火) 00:46:33 ID:95Ww71Pl
>>472 Tks. パフォーマンステスト検証してみます。
>>476 >配列エレメントに値を割り当てるとき (my_array[index] = value など)、index が数値でかつ index+1 が
>length プロパティよりも大きい場合、length プロパティが index+1 に更新されます。
って書いてあるよ
あなたが公式ドキュメントより正確な知識を有してるというなら、その通りかもしれないけど
>>479 気になったから今ソース見たけどやっぱりlengthチェックして拡張処理やってた
しかも添字アクセスがネイティブ(C++)で実装されてるのに対して、
pushは実装がASレベルでされてたから、直接アクセスの方が実は速いかも
ソースはtamarin
ああ、そうか。lengthプロパティの値をチェックしなきゃならんのね。
それは配列っ「ぽく」見せるためのASの独特の処理。拡張してるわけじゃない。
もっと言えばASのArrayにとって添え字の1は文字列の「1」と対して変わらん
>>475 が全て
var arr:Array=[];
arr[10]=1;
trace(arr.length);//11
for (var o in arr)trace("hoge"); //1回だけ表示
arr = [0,1,2]
arr[10]=1;
trace(arr.length);//11
for (o in arr)trace("hoge"); //4回表示
>>481 たぶんそれは今まで信じられてきた噂ってだけじゃないかな?
もしくは昔のバージョンがそうだったか。
現在のArrayの内部実装はObjectで使われるものとは別に、
数値インデックス専用のm_denseArrというプライベート配列を別に持ってて、
添え字が0以上の場合は恐らく高速化のためにそっちを使ってるみたい
ま、自分も今ソース見て初めて知ったけどw
ああ、ちなみに高速化されるのは
>>471 みたいな場合ね
>>481 みたいにインデックスが飛ぶ場合とかマイナスの場合は従来通り
>>482 お、そうなの?
プリミティブと一緒に頑張ってくれてたのか
そりゃ朗報だわ
ちなみに信じられてる噂じゃなくて、思いっきりリファレンスにObjectを継承してる事書いてあるからw
継承してる=動作が同じ、じゃないぞ? そんなんじゃオブジェクト指向の意味ないじゃん 継承先で動作が変わってるなんてよくあること ましてやこの場合C++で書かれてる部分じゃ形式上の継承とか関係ないし
Arrayで盛り上がってますな AS3 Flex3 var array:Array = []; array[0] = 0; trace( array.length ); array[1] = 1; trace( array.length ); array[-1] = -1; trace( array.length ); array[0xfffffffe] = 0xfffffffe; trace( array.length.toString(16) ); array[0xffffffff] = 0xffffffff; trace( array.length.toString(16) ); array[2] = 2; trace( array.length.toString(16) ); 暇な人は上から順にtraceの出力がどうなるか当ててくれ
自分でやれよw
>>486 マイナスのインデックスで高速化が働かないことは
>>483 に書いてあるけど、
他にMAX_INTEGER_MASK(0xF0000000)と論理積とって引っかかるものも除外される
つまりこれらは添え字に文字列を指定したのと同じような効果になる
lengthはこれら文字列インデックスの数と
>>482 にあるm_denseArr.lengthの合計値が返される
こんな回答でいい?
489 :
Now_loading...774KB :2008/09/09(火) 19:13:48 ID:YFM1Sy0D
変数の_btnNameにbtn00, btn01・・・と連番ボタン名を入れていって、 それらのbuttonModeをtrueにしてやりたいだけなのですが、 _btnName.buttonModeとすると、 _btnNameという変数自体が、プロパティ名と解釈されてしまい、 btn00.buttonMode = true; のように出来ない状態です。 _btnNameの中に格納されているのは、 btn00、btn01という、ボタンの名前ですよ、というようにするにはどうしたらいいのでしょうか。。。 for(var i:uint=0; i < 6; i++){ var _btnName:String = ("btn0" + i) as String ; _btnName.buttonMode = true; }
this["btn0"+i].buttonMode = true;
491 :
486 :2008/09/09(火) 19:54:26 ID:hgoyihFv
>>487 質問ではなく、個人的に意外な結果になったので聞いてみただけっす。すんません。
解答は
var array:Array = [];
array[0] = 0;
trace( array.length ); //1
array[1] = 1;
trace( array.length ); //2
array[-1] = -1;
trace( array.length ); //2
array[0xfffffffe] = 0xfffffffe;
trace( array.length.toString(16) ); // ffffffff
array[0xffffffff] = 0xffffffff;
trace( array.length.toString(16) ); // 0
array[2] = 2;
trace( array.length.toString(16) ); // 3
負の数字がlengthにカウントされない事と0xffffffffでlengthが0になるのに驚いた。常識?
おまけ
for ( var hoge in array ){
if( hoge is String )trace( hoge );
}
// -1
// 4294967294 (0xfffffffe)
// 4294967295 (0xffffffff)
>>488 > lengthはこれら文字列インデックスの数と
>>482 にあるm_denseArr.lengthの合計値が返される
上記だとarray[-1]してもlengthが増えないので、文字列インデックスとして使われる部分はカウントされないのでは?
>>491 lengthの実装がreturn m_denseArr.getLength()ではなくreturn m_lengthだったから、
その辺も足したものになってると勝手に勘違いしてた
ハッシュ周りは上位のScriptObjectクラスに丸投げしてArrayObjectクラスでは触ってないね
0xffffffffが使えない理由は、↓のようにコメントで書いてあった
// We can NOT use 0xFFFFFFFF for this since x[0xFFFFFFFE] is a valid prop
// which would make our length 0xFFFFFFFF
すみません、いろいろググってみたのですが、方法がわからなかったので教えてください。 おみくじのようにランダムにフレームへジャンプするASを組みたいのですが、指定したフレームの中でランダムに飛ぶ方法はありますか? 例えば、3、136、369フレームのどれか一個に飛ぶ、という具合です。 教えていただければ幸いです
>>478 すみません。質問に補足させていただきます。
例えば「押すとAからBに変わる」というボタンを作ります。
そのボタンを押している間は”B”になっているのですが、
離すとまたAに戻ってしまいます。
一度クリックすると、変化したままでいるスクリプトを教えてください。
495 :
Now_loading...774KB :2008/09/09(火) 22:52:12 ID:YFM1Sy0D
489です。
>>490 動きませんでした。
この[]という表記方法は何なのでしょうか。
一箇所表記を間違っていました。
_btnNameの前に_btnSetというのがつきます。
_btnSetというのは、ボタンを複数梱包しているMCの名前です。
for(var i:uint=0; i < 6; i++){
var _btnName:String = ("btn0" + i) as String ;
_btnSet._btnName.buttonMode = true;
}
496 :
Now_loading...774KB :2008/09/09(火) 22:53:48 ID:u4lZQ3fW
flvファイルのプログレッシブダウンロードが時々途中で止まってしまう事があるのですが、 どのような対処が考えられますでしょうか? AS2です。
497 :
Now_loading...774KB :2008/09/09(火) 22:54:37 ID:YFM1Sy0D
489です。 補足です。 _btnSet._btnName.buttonMode というのは、_btnNameが変数で、 その場所の値を入れ替えることで、 _btnSet.btn01.buttonMode や、 _btnSet.btn02.buttonMode というように、まとめて、buttonMode=trueにしたいという目的があります。 お助けください。
498 :
Now_loading...774KB :2008/09/09(火) 23:11:53 ID:wI6DLpeX
CS3で gotoAndPlay の挙動が ActionScript3.0 でパブリッシュするとどうもおかしいのだが、 何か解決法はあるのかな・・・ 具体的には2フレームのキーフレームを作って3フレーム目に gotoAndPlay(1); とすると、 ActionScript2.0 でパブリッシュすると2フレームのパターンを交互に表示するループに なるのに、3.0 でパブリッシュすると gotoAndPlay で1フレーム待たされて、1フレーム 目のパターンが2回に2フレーム目のパターンが1回という繰り返しになって しまう。これだとアニメーションを綺麗につなぐことができなくってとても困るのだが・・
>>497 よくわからないが、こうか?
for(var i:uint=0; i < 6; i++){
_btnSet["btn0"+i].buttonMode = true;
}
>>494 Flex3+AS3の俺がアドバイスできるのは
SimpleButtonクラスとかButtonクラスを使えば出来る、と言うことぐらいだ
501 :
Now_loading...774KB :2008/09/10(水) 00:26:21 ID:uaunU19J
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) getRGB()で質問です。 root上のMC(mc1,mark1)の色を取得するため、mc1のイベントハンドラに onClipEvent (load) { trace("Color= "+this.getRGB()+", "+_root.mark1.getRGB()); } と書いたところ、 Color= undefined, undefined の表示になりました。 問題点はどこでしょうか?
>>493 var array:Array = new Array(3, 136, 369);
var rndFr:uint = array[Math.floor(Math.random()*3)];
trace(rndFr);
>>495 >この[]という表記方法は何なのでしょうか。
配列アクセス
>>496 止まってしまう原因を解明する
>>501 原因はMovieClipクラスにgetRGBってメソッドがないから。
getRGBがあるのはColorクラス。
だけどgetRGBで取得できるのは
最後のsetRGB() 呼び出しで設定されたRGB値だけだから、
一度setRGBで設定しないと取得できないと思う
505 :
493 :2008/09/10(水) 01:46:39 ID:7T/b55CI
>>502 御早いご返答ありがとうございます。
しかし、私はCS3は使っていますが、AS2.0の設定にして制作しておりますので、unitがエラーで表示されてしまいました。
AS3.0の設定にして、もう一度パブリッシュをすると、今度は
「警告 : ActionScript 3.0 では、ボタンインスタンスまたは MovieClip インスタンスのアクションはサポートされていません。オブジェクトインスタンスのすべてのスクリプトは無視されます。」
と表示されてしまいました。
AS2.0=unitは使えない
AS3.0=ボタンが使えない
となり、行き詰まってしまいました。
お手数ですが解決策がありましたら教えてください。お願い致します。
506 :
493 :2008/09/10(水) 02:07:43 ID:7T/b55CI
>>502 自己解決しました!AS3ではunitですがAS2ではNumberなのですね!
教えてくださってありがとうございます。
on (press) {
var array:Array = new Array(3, 136, 369);
var rndFr:Number = array[Math.floor(Math.random()*3)];
gotoAndPlay(rndFr);
}
508 :
Now_loading...774KB :2008/09/10(水) 10:54:42 ID:qB/ZNCv0
489、495,497,です。
>>499 >>503 _btnSet["btn0"+i].buttonMode = true;では駄目でした。
配列アクセスを使用したときのプロパティとして当たらないということでしょうか。
TypeError: Error #1010: 条件は未定義であり、プロパティがありません。
となってしまいます。
何故でしょうか・・・・??もう一度整理すると、
_btnSetというインタンス名のMCの中に、
6つのボタンMC(btn00〜btn05※インスタンス名です)が入っています。
それら6つをまとめて、forループですべてbuttonMode=trueにしたいのです。
そこで、
for(var i:uint=0; i < 6; i++){
var _btnName:String = ("btn0" + i) as String ;
_btnSet._btnName.buttonMode = true;
}
が駄目で、、、
for(var i:uint=0; i < 6; i++){
var _btnName:String = ("btn0" + i) as String ;
_btnSet["btn0"+i].buttonMode = true;
}
も駄目でした・・・。いずれも同様のエラー、「条件は未定義であり、プロパティがありません」お助けください
>>508 とりあえずこうしたらダメでしたが延々続くだろw
AS3.0の本一冊読むか、ヘルプ一通り見るかしてから来い
オブジェクト指向なAS3.0は付け焼き刃じゃ何も出来ないよ
AS3.0なの? _btnSet.btn00.buttonMode = true; だったら意図したように動くの?
511 :
Now_loading...774KB :2008/09/10(水) 11:47:46 ID:qB/ZNCv0
>>509 すみません、いけました!
指摘の内容、仰るとおりです。本は読んでいますが、理解がまだ追いついていません。
>>510 勘違いでした。エラーは次の行で起きていたようで、
ここのループはばっちり配列アクセスで設定できました。
大変失礼しました。ありがとうございます。
512 :
Now_loading...774KB :2008/09/10(水) 14:29:08 ID:raTDs9XY
AS3.0にて外部から読み込んだテキストを使ってリンクを貼りたいのですが、どうしたらいいでしょうか?
513 :
Now_loading...774KB :2008/09/10(水) 14:37:16 ID:raTDs9XY
>>513 private function loadCompleteHandler(e:Event):void
{
var loader:URLLoader = URLLoader(e.target);
var vars:URLVariables = new URLVariables(loader.data);
var tf:TextField = new TextField();
tf.htmlText = "<a href=\"" + vars.url0 + "\" target=\"_blank\">link</a>";
this.addChild(tf);
}
515 :
Now_loading...774KB :2008/09/10(水) 17:47:03 ID:raTDs9XY
>>514 ありがとうございます。
すみません補足不足でした。
画像にリンクを貼りたいです。
申し訳ございません。
>>514 を見てふと思い出したけど、波カッコ“{”を改行するコーディングスタイルを
よく見かけるようになったんだけど、何か理由があるのかな?
AS3のIDEであるFlashDevelopも途中のバージョンから改行するスタイルに変わってて、
違和感を感じたんだけど、元々あるものか、最近どこかで提唱されたとか、知ってる人
いたら教えてほすぃ
517 :
516 :2008/09/10(水) 18:55:25 ID:f39TfBvC
> AS3のIDEであるFlashDevelopも途中のバージョンから改行するスタイルに変わってて これだとちょっと誤解を与えちゃうか。波カッコを改行するかしないかは設定で変えられるんだけど、 デフォルトの設定が改行しないスタイルから改行するスタイルに途中で変わった、ということです。
>>518 あーそうなんだ、情報ありがとう。もっと大きな流れか何かかと思ったけど、AS内だけの決まり事なんだね
言語の開発元が提唱した規約は十分大きな流れだと思うが
スコープでブレースを使う多くの言語の中で、改行を推奨する言語なんてAS以外にあるっけ?
最近の Microsoft の規約は大体そうでしょ 何故そこだけ Sun Java 的にならなかったのか謎だけど
>>520 あーそんな深い意味で言った訳じゃ無いんだけど、
>>521 が言うようなプログラミング業界(?)全体的な意味でw
この改行すんごい違和感あるんだけど、改行するメリットって見やすさかしら
なんだろね?ブロックを把握しやすくするとかかね?
慣れなんだろうけど、昔からこの書き方違和感あって読み辛いし馴染めなかったなあ
改行を好む人と好まない人がいるよね。 for (var i = 0; i < 10; i++) { // comments trace(i); } こう書く人と for (var i = 0; i < 10; i++) { // comments trace(i); } こう書く人がいるのね。規約に従うと万人がこうなって、 コミット時に精神衛生上よろしくなりました。 for (var i = 0; i < 10; i++) { // comments trace(i); }
>>526 おぉ〜かなり納得できる理由だっ! ちょっと規約に従う気になれました。
>>515 TextFieldの画像表示でハマッてました・・・
解決したけど、画像なら素直にnavigateToURLの方がいいかな?
private var url:String;
private function imageClickHandler(e:MouseEvent):void
{
if (url != null)
{
var request:URLRequest = new URLRequest(url);
navigateToURL(request, "_blank");
}
}
private function urlLoadCompleteHandler(e:Event):void
{
FlashConnect.trace("urlLoadComp");
var loader:URLLoader = URLLoader(e.target);
var vars:URLVariables = new URLVariables(loader.data);
url = vars.url0;
}
AS3で、MovieClipやSpriteのオブジェクトの「中心点」を操作できるプロパティってありますか? Livedocで調べたりしてみたんですがそれっぽいのが見つかりませんでした 今は以下のように中心を計算して操作してるんですが、書いてたらそれ用のプロパティがあるような気がしてきて・・・ var xx:Number = stage.stageWidth / 2; var yy:Number = stage.stageHeight / 2; var mm:MovieClip = new MovieClip(); mm.x = xx - (mm.width / 2); mm.y = yy - (mm.height / 2); addChild(mm);
画像を外部から読み込んでいるフラッシュがあるのですが、 特定の日付以降になると、その日付のファイル名の画像ととりかえたいのです。
531 :
530 :2008/09/11(木) 06:39:58 ID:13AYJM+Q
途中送信してしまった… たとえば、8月12日までは main.loadMovie(image/0711.png) 8月13日になったら main.loadMovie(image/0813.png)にきりかわるようにしたいのです。 月と日付を取得してそれを以下ので4桁にして、 today = ("0"+mm).substr(0, 2)+("0"+dd).substr(0, 2); 0123,0222,0309 …と、必要な分の日付を,で区切ったテキストファイルを読み込み,で分割、 todayよりその数字が大きくなったら、その部分を取り替えて新しい日付の画像を読み込ませたいのですが、if文がよくわからなくなってしまいました。 お手数おかけしますが、よろしければご教授ください。
>>531 日付の比較はDate自体ですればいんじゃないかな
var targetDate:Date = new Date(2008,9-1,12);
var today:Date = new Date();
trace(targetDate < today);
あ、こっちだなw trace(targetDate.getTime( )<today.getTime());
>>531 あなたの書いた文だとよくわからんところがあるが
>0123,0222,0309 …と、必要な分の日付を,で区切ったテキストファイルを読み込み,で分割、
この0123とか0222は、それぞれ1月23日、2月22日ってことかな?
で、今日が1月30日だとすると、0123.pngを表示したいってことだよね?
ま、そうだと仮定すると、こんな感じかなぁ
var dtArr:Array = [ "0123", "0222", "0309", ...];
var today:Date = new Date;
var result:String = "";
for each( var dtStr:String in dtArr ) {
var showDate:Date = DateField.stringToDate( dtStr, "MMDD" );
if ( showDate.getTime() < today.getTime() ) {
result = dtStr;
} else {
break;
}
}
trace ( "result:" + result );
535 :
Now_loading...774KB :2008/09/11(木) 15:46:35 ID:eKrSoIzd
ちゃんと実行してみたら、まちがってた・・・・。 正しくは var today:Date = new Date; var result:String = ""; var fm:DateFormatter = new DateFormatter(); fm.formatString = "YY"; for each( var dtStr:String in dtArr ) { var showDate:Date = DateField.stringToDate( fm.format(today)+dtStr, "YYMMDD" ); trace( fm.format( showDate ) + " " + fm.format( today ) ); if ( showDate.getTime() < today.getTime() ) { result = dtStr; } else { break; } }
初歩的な質問ですが、下のような記述はやってもいいのでしょうか if(A && B || C) { 〜 } これだと、条件が「AかつB、または、C」なのか「A、かつ、BまたはC」なのか定まらない気がします…。説明が下手ですいません。 ちなみにAS1.0です。
>>536 定まらないってことはないです。
それだけの事をなぜ試してみないのでしょうか。
また、なんでそれをやりたいのか理解に苦しみます。
>>536 普通のプログラミング言語なら,演算子には
優先順位と(同一順位での)実行順序が決められています。
必ず結果は一意に定まります。
>>536 演算子には優先順位や結合性といった規則があります。
これは、異なる演算子が同時に表記されたときに、どのような順番で実行されるのかを決めるものです。
例えば 5 + 3 * 6 という式ではまず 3 * 6 を実行しますよね?
これは+よりも*の方が優先順位が高いからなのです。
この優先順位は全ての演算子に決められていて、&&と||の場合は&&の方が優先順位が高いことになっています。
(詳しくはリファレンスを読めば載ってる・・・・はず)
よって A && B || C と書いた場合は必ずA&&Bが先に評価され、
> AかつB、または、C
となります。
というわけでそのような記述はして構いません。
ただ、慣れないうちは括弧をつけた方がわかりやすいかもしれませんね。
Ex. if( (A && B) || C )
AS3の質問です。 ドキュメントクラスので宣言したオブジェクトに メインのタイムラインからならアクセスできると思うんですけど メインタイムラインにインスタンス名をつけて設置したムービークリップからは どうやってアクセスするんですか? そのムービークリップの1フレーム目にキーフレームをセットして アクションにroot.hoge.func();ってやってもアクセスできないです。 rootってドキュメントクラスとは違うんですか?
AS3で質問です。 あるswfファイルから他所のswfファイルを呼び出すとき test.swf?param=abc みたいに、GETパラメータみたいにデータを渡す事って可能ですか? それとも もっと良い方があるのでしょうか?
542 :
536 :2008/09/11(木) 22:38:08 ID:vCS/oIpm
>>537 確かに、試せば済む事でした。すいませんでした。
>>538 >>539 なるほど、優先順位という物があるんですね。分かりやすく説明していただきありがとうございます。
543 :
540 :2008/09/12(金) 00:27:12 ID:K/AgP6Fb
すみませんスルーしてください。 rootはドキュメントクラスでした。
>>541 可能です。
LoaderInfo.parameters
あたりでググってみてください。
545 :
Now_loading...774KB :2008/09/12(金) 06:22:50 ID:44hRgaAX
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0)
Matrixクラスで質問です。
インスタンスを傾斜を加えながら回転させるため、Matrixクラスの変換機能を使う
ことにしました。
ここで参考にしたサイトは、
ttp://www.flashiroha.com/script/matrix/as68.html なのですが、Flash8-Proのヘルプと照らし合わせたところ不明な点が浮かんだの
で質問することにしました。
サイト中に var myMatrix:Matrix = new Matrix(a, b, 0, 1, 200, 200); という記述
があります。一方ヘルプでは、傾斜用のマトリックスの要素と、コンストラクタが
0 SKy 0
SKx 0 0
0 0 1
Matrix([a:Number], [b:Number], [c:Number], [d:Number], [tx:Number], [ty:Number])
になっており、a → 0, b → SKy, c → SKx, d → 0 (平行移動は省略)になる筈で
すが、サイトのMatrix(〜)定義と異なっています(例:0になるべきaの値がサイトでは
「var a」で定義されている)。
※SKx,yはx,y軸方向にスライドする量です
自作のMCでもサイトのASで目的の動作は出来ましたが、何故この記述で可能なの
でしょうか?
546 :
Now_loading...774KB :2008/09/12(金) 08:26:21 ID:3Moz3j0n
それ捨ててAS3の本を買えばいい
>>545 ASの話じゃなくて行列計算の話じゃん
数学板でも行くか数学の入門書でも買って読めばいいよ
ボタンアクションで全く同じ処理で押すボタンだけを複数したいのですが良い方法が思いつきません。 例えば上キーか下キーを押したとき同じ処理をする場合 on(keyPress"<Up>") { //長ーい記述 } on(keyPress"<Down>") { //上と同じ記述 } 上のやり方しか思いつきません。記述が長いのでできれば一つにまとめたいのですが……。分かる方がいましたらお願いします。SWF7です。
>>550 一言で言うと
functionを使うべし
552 :
545 :2008/09/12(金) 21:37:48 ID:Pm1dpESb
>>549 すみません、紙上で演算しても、本(行列・ベクトルの本)
を読んでも分かりません。
解説をお願いします。
>>545 いまちょっと確認できないけど、ヘルプはバージョンによって行列の記述が間違ってるから、
結果から正しい定義を見出したほうが良いよ。
>>552 サイトに書いてあるのは回転と傾斜をするためのパラメータ
あなたが引っ張ってきたのは傾斜だけのパラメータ
違ってて当たり前なんだけど、紙上で演算しても気づかなかったの?
本当に計算できるなら気付いて当たり前だから、入門書読んだら?と勧めたんだけど
Matrixクラスの使い方ならともかく、その動作原理なんてスレ違いもいいとこだし
>>550 function
ルートのフレーム1にでも書いておく↓
function botandetukau() {
//長ーい記述
}
これで botandetukau() というアクションがセットされたことになるので、使いたい場合は
on(keyPress"<Up>") {
botandetukau();
}
とか
on(keyPress"<Down>") {
_root.botandetukau();
}
などで最初に定義したのと全く同じ処理をたった一行の命令でさせられます。
functionの使い方の詳細はググれ。
556 :
545 :2008/09/13(土) 06:36:47 ID:qsfxqZIr
>>553-554 さんきゅうです。
「回転と傾斜をするためのパラメータ 」
ああそうか、回転作用を見落としていた。
理系の大学入れば1年の最初で線形代数習うよ
>>523 1行目をコメントアウトするだけでスコープになるからデバッグしやすい。
>>556 行列の3*3それぞれのパラメータの意味分かってる?
とりあえず、aとbだけマウスの座標にあわせてグリグリ動かしてみな。
すみません教えてください! tmpArrayという配列に、10個のMovieClipを格納しました。 その中でvisible=trueのものを1つだけx=100にしたいのですが、 for each (var m:MovieClip in tmpArray) { if (m.visible) { m.x = 100; break; } } と書いたのですが、一件も処理されません。 ちなみにbreakを外すと、全部のMovieClipがx=0になります。 どこがおかしいのでしょうか!?
>>551 >>555 遅レスになりましたが初心者級の質問に答えてもらいありがとうございました!そんな便利な関数?(関数を作る関数ってことですかね)があったんですね。おかげさまでできました!
>>560 どこにもxに0を代入する文がないのに
全部0になるの?
>>560 >ちなみにbreakを外すと、全部のMovieClipがx=0になります
デフォが0じゃないのに0になるってこと?
俺のエスパー能力は他の場所に問題があるってよ
>>560 書き方に問題はないっぽい。
tmpArrayの一つ目が処理されてることに
>>560 が気づいてないんじゃないかな。
breakの前にtrace入れるとかして確かめてみたら?
稀に検索できることがある
568 :
Now_loading...774KB :2008/09/14(日) 13:37:20 ID:bkvVbWVJ
AS3のコンポーネント ComboBoxのリスト部分の文字をでかくしたい! 選択されているところは、 var tf:TextFormat = new TextFormat(); tf.size = 50; InstanceName.labelField.textField.setStyle("textFormat", tf); でいけるのに。。。 ComboBox内のListがReadOnlyだから? どうにかならん????
リスト項目全部に設定すりゃいんじゃね
570 :
Now_loading...774KB :2008/09/14(日) 21:00:12 ID:kUfVg168
>>560 ”一件も処理されません。 ”ってのは、m.x=100 にならないってこと?
どうやって確かめた?
571 :
Now_loading...774KB :2008/09/15(月) 02:41:16 ID:5uJPuCG3
指定座標を中心に地図を拡大縮小するにはどうしたらいい? 地図をクリックする場所はユーザーが自由に決めれたらいいんだが。 matrixで画像を動かしたりはできるけど、、 もう一つまだ掴めてないっす。
>>571 予め元の地図の下にに(深度を下に)もう一枚おく。
→ 下の地図はマウス座標に追従するようにして、クリックしたら上下が入れ替わる。
→ このとき下の画像の拡大縮小もする。
ではどう?
573 :
Now_loading...774KB :2008/09/15(月) 02:56:35 ID:UyWqr5ne
入れ子MCの消去で質問です。 ソフトはFlash8-ProのAS2.0で、OSはWinXP-Proです。 親MC(mcA)の入れ子MCとしてmc1, mc2, ab1, ab2・・・ があったとき、これらを 一括して消去する方法はありますでしょうか? for文で指定すれば良いのですが、状況により入れ子MCが細かく変わるので、 インスタンス名に関わらずclear()の様に消したく思っています。
>>573 ・親MCを消す
・for in で消す
575 :
Now_loading...774KB :2008/09/15(月) 03:34:25 ID:5uJPuCG3
571っす
>>572 マウスに追従してきてたら、指定の箇所をクリックして、
拡大にはなんないよ。
中心座標を毎回計算しないとダメだと思うので、
マトリックスを使わないとダメみたいで、
その正しい使い方がいまひとつわからないです
576 :
Now_loading...774KB :2008/09/15(月) 04:25:56 ID:yAUknH1/
AS2のswfからAS3のswfをloadMovieした場合、 子のAS3swfから親のAS2swfの関数を呼ぶのは どうしたらよい?displayObject.rootとかやってみたけど だめなんだ。
577 :
573 :2008/09/15(月) 04:39:54 ID:UyWqr5ne
>>576 AS2とAS3は互いにアクセスできなかったような気がするけど
test
flash8、AS2に関する質問です。
フレームでmenuとmainに分けたサイトのmenu部分にflashを置いて、flash内のボタンを押すと
main部分が切り替わるようなものが作りたいのですが、
getURL("top.html", "main");
のように自サイト内のページを開くときは問題ないんですが
getURL("
http://blog.xxxx.com ", "main");
みたいに外部サイトを参照したときのみ、なぜか画像やスタイルシートが読み込まれません。文章は表示されるんですが・・・
getURL("
http://blog.xxxx.com ", "_blank");で外部ウィンドウで表示させれば問題なく読み込まれました。
allowscriptaccess="always"とかも関係ないっぽいですし、解決策が分からないです。
ご指導お願いします。
582 :
Now_loading...774KB :2008/09/15(月) 18:48:30 ID:nQYCYh1u
わざわざフルパスにする必要ないからいいんじゃないの?
583 :
Now_loading...774KB :2008/09/15(月) 20:47:33 ID:mbaHHWXi
As2.0 WIN XPです。 マウスが近づくとMCが拡大するというスクリプトをMCに書いて 実行させています。 これをrootのタイムラインにfunctionとして定義して、 MCにはfunctin();にて実行させる場合、 rootにはどのように書けばいいのでしょうか? 多分、xm、ymあたりの変数あたりに工夫をしなければならない と思うのですが、迷路に入り込んでいます。 よろしくお願いいたします。 // onClipEvent (enterFrame) { xm = _xmouse; ym = _ymouse; span = Math.sqrt(xm*xm+ym*ym); if (span>100) { mcScale = 80; } else { mcScale = 80+(span-100)*-20/100; } this._alpha = this._xscale=this._yscale=mcScale; }
>>583 //onEnterFrame
onClipEvent (enterFrame) {
_root.HOGE(this)
}
//_root
function HOGE(mc:MovieClip) {
xm = mc._xmouse;
ym = mc._ymouse;
span = Math.sqrt(xm*xm+ym*ym);
if (span>100) {
mcScale = 80;
} else {
mcScale = 80+(span-100)*-20/100;
}
mc._alpha = mc._xscale=mc._yscale=mcScale;
}
>>582 サイトの構造的に、どうしても新規ウインドウを開かずに表示したい
AS3でSpriteやMovieClipオブジェクトの基準点を指定(変更)する方法ってありますか? FlashCS3でシンボル変換時に出るウィンドウの9つの点で指定出来るやつです
>>584 お陰様で無事実装できました。
ありがとうございました m(_)m
>>581 問題の絞込みはどこまでやってる?
ちょこっと試して見たけど問題ないみたいだった。
ASの問題じゃないだろ?
その他の環境によるもんじゃないのかな?
つか
>>582 は解決策暗示してんじゃないの?
>フルパスにする
まぁ、パクリサイトだったらいじれないから無理だろうけど、
589 :
Now_loading...774KB :2008/09/16(火) 20:39:18 ID:s2/Veykc
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0)
入れ子MC内のテキストフィールドのハイパーリンクで質問です。
URLが指定されたテキストをクリックすると当該HPにジャンプするようなムービーを作るため、
あらかじめ空のテキストフィールドを含んだMCをfor文とattachMovie()で10個生成しました。
確認のため、TextFormat()で太字になるように設定したところ、テキストフィールドの文字列
は狙い通りに10個全て太字になりましたが、生成されたテキストフィールドにマウスポインタを
重ねてもリンク動作をしません(下はASの抜粋です)。
fmt_name.url = "
http://www.yahoo.co.jp/ "; //URL設定
fmt_name.html = true;
fmt_name.bold= true;
//
this["textM"+id].txt = id; //idは0〜9で、縦に0〜9が表示
this["textM"+id].txt_ins.setTextFormat(fmt_name); //太字にはできる
どうしたら良いでしょうか?
Flash8です。 loadMovieで外部のフラッシュを 完全に読み込んでから次のフレームに進みたいです。 完全に読み込んでから次のフレームに進むスクリプトを 教えてください。
591 :
Now_loading...774KB :2008/09/16(火) 22:15:54 ID:SavpeRG8
>581 自分が言ってるように、 フレームの場合のCSSの定義をもう一度確認した方がいいんじゃないかな。 スタイルシートは外部ファイルだよね?
なんだかクソスレ化してきたなw
今までどんだけ良スレだったんだよw
594 :
589 :2008/09/17(水) 00:49:09 ID:MlH37Gk0
すいません。目標とは若干違いますが、TextFormat()をMCの
フレームアクションとして指定し、getURL()で表示出来るように
なりました。
つまり、MCで
this.onPress = function() {
フォーマット指定
getURL("
http:// 〜");
}
という感じです。
これでクリックすると目標のHPが表示され、数字の太さや色も
指定できました。
595 :
Now_loading...774KB :2008/09/17(水) 04:39:56 ID:FCyk1IHm
WinXP-ProでFlash8を使用。 指定したディレクトリ(パス)にあるファイル名の一覧を得るにはどうしたら良いでしょうか? よくソフトなどで、フォルダを階層毎に開いて、目的のフォルダの中身を表示する感じです。 出来ればAS2.0以下で願います。 先ずは、trace()表示をしたく思います。
>>595 import flash.net.FileReferenceList;
import flash.net.FileReference;
var listener:Object = new Object();
listener.onSelect = function(fileRefList:FileReferenceList) {
trace("onSelect");
var list:Array = fileRefList.fileList;
var item:FileReference;
for (var i:Number = 0; i<list.length; i++) {
item = list[i];
trace("name: "+item.name);
}
};
var fileRef:FileReferenceList = new FileReferenceList();
fileRef.addListener(listener);
fileRef.browse();
597 :
Now_loading...774KB :2008/09/17(水) 12:17:51 ID:MRmnZX1b
598 :
Now_loading...774KB :2008/09/17(水) 13:57:51 ID:p+3YDTsR
質問です ボタンで外部swfを空mcに読み込み、表示されるコンテンツを切り替えたいのですが 初期でロードするムービークリップにリンケージで識別子を設定して読み込んでいる モノがあり、ボタンで他のに切り替えても、残ってしまいます。 完全に他のswfに切り替えたいのですが、どなたかよろしくお願いします。
599 :
Now_loading...774KB :2008/09/17(水) 13:58:26 ID:MTrr1q0f
mcBoxを、シフトキーを押しながらクリックした場合は onShiftClickというファンクションを呼び出したいんだけど、 それはどのようにaddEventLisntenerしたらいい? mcBox.addEventListener(ここがわからない);
>>599 試してないけど、多分こう。
mcBox.addEventListener( MouseEvent.MOUSE_CLICK, onClick );
public function onClick( e:MouseEvent ):void{
if( e.shiftKey == true ) trace( "shiftキーを押しながらクリックされました。" );
}
>>596 レス有難うございます。
早速、試してみます。
602 :
595 :2008/09/17(水) 17:43:56 ID:QPxJsoy0
(ファイル名一覧の取得)
>>596 さんの方法を元に、browse()のヘルプを参照し、JPGのみを選択するように
fileRef.browse(); → fileRef.browse([{description:"Images", extension:"*.jpg"}]);
と加工しました。
しかし出来れば、任意のパスを指定して、そこにある全てのJPG名を自動的に取得
したく思っています。一応、考えられる箇所を細工しましたが駄目でした。
どうすれば良いでしょうか? 再度アドバイス願います。
603 :
Now_loading...774KB :2008/09/17(水) 18:00:10 ID:MNJurFNW
そんなんできたらローカル環境のファイルリストを勝手にどっかに送られんだろ ユーザーが手で選択するしかできないようになってんだよ
604 :
Now_loading...774KB :2008/09/17(水) 19:23:22 ID:MTrr1q0f
>>600 ありがとうございます。
バッチリできました〜!!
>>603 有難うございます。
確かにそうですね。
煮詰まってしまったので質問させて下さい。 ボタンなんですが、上レイヤーのボタンを押すと下レイヤーの ボタン(…といっても、わけあってhitTestで作ってます、しかも大量)まで反応します。 #タイムラインを使えばいいんですが、再ロードさせたくないので、単に無効になってくれるのが理想です。 一般的なenabledや空ボタン程度だとダメっぽいのです。 何とか簡単に下レイヤーのhitTestを無効化出来ないでしょうか。
>>606 要は、100個位あるMC型のボタンの1個を押すと、その1個のみを
Onの状態にしたいということ?
attachMovie()でインスタンス生成(ボタンMC生成)すれば、レイヤーを考慮せずに
好きな数だけ好きな位置に配置できるが・・・
(ただし、この場合には、各深度に注意)
タイムラインも、gotoAndStop()で制御すれば、各ボタン単位で有効/無効が設定
できるよ。これじゃ駄目?
608 :
606 :2008/09/18(木) 09:46:19 ID:av1fhiPK
>>607 いえ、その方法が使えません…
具体的には塗り絵Flashで、100個くらいあるシンボルにhitTestで色付けする方法を採っています。
で、その上に「○○しますか?はい いいえ」的なダイアログを出したいんですが、下の
シンボルが反応してしまうので困っている次第ですw
どう作ってるのか知らないけど、 それならダイアログだしたらhitTestの処理なくせばいいんじゃない?
610 :
Now_loading...774KB :2008/09/18(木) 13:54:46 ID:kq5/cFrH
ドキュメントクラスの中で public宣言して作成した関数hoge()を、 ムービー内の一つのmcBtnがクリックされたときに呼び出したいけど うまくいかないです。 普通に mcBtn.addEventListener(MouseEvent.CLICK, hoge); と書くだけじゃ駄目ですか?
611 :
606 :2008/09/18(木) 15:53:14 ID:Rh63+pHt
>>609 有り難うございます。
結局for++iで100個のMC全部指定するか各MCにひたすらhitTestオフ条件を書き込む
ベタな方法でしか回避できないんですかね…
>>610 引数の型をMouseEventにした?
>608 シンボルクリックしたら全体を覆うMCを表示させる
614 :
Now_loading...774KB :2008/09/18(木) 17:57:41 ID:kq5/cFrH
>>612 610です。
すみません、省略し過ぎました。
もう少し詳しく書きます。
ドキュメントクラスmain.as内で、
public function hoge():void{
trace("きてます");
}
としておいて、
ムービークリップの、mcBtnのフレームアクション上で、
mcBtn.addEventListener(MouseEvent.CLICK, onJump);
function onJump(e:MouseEvent):void{
hoge();
}
としています。これを実行すると、
「1180:未定義である可能性が高いメソッドhogeの呼び出しです」
となってしまいます。root.hoge()でも駄目でした。
何が駄目なんでしょう?
※ドキュメントクラス内からの命令でhoge()は普通に呼び出せます。
>>614 MovieClip(root).hoge();
教えてください タイムラインのMcPageの1フレーム目にTOPページ、 2フレーム目に2ページと置いて、各ページの中に mc001、その中に入れ子にしてBtn001というボタンが いくつかあり、ボタンをロールオーバーするとswapDepthsにて 最上層に出てくるような感じにしています。 (ロールオーバすると吹き出しが出るようになっていて、重なり防止のため) rootには var depth:Number = 0; と書き 外部Asには Mcpage.mc001.Btn001.onRollOver = function() { this._parent.swapDepths(_root.depth++); と書いて、TOPページ内ではSwapDepthsが効いているのですが 2ページ目になるとSwapされていません。 ご教授よろしくお願いいたします。 フラッシュ8使用です
618 :
Now_loading...774KB :2008/09/18(木) 21:44:49 ID:kq5/cFrH
>>615 610です。
ありがとうございます。
無事できました!!思いつきませんでした・・・!
感謝いたします。
AS3で、TextFieldの文字の色を赤→緑→青と変えたいのですが 上手くいきません。以下コードです。 var f = new TextFormat("Arial", 12, 0xFFFFFF, false, false, false); var t = new TextField(); t.defaultTextFormat = f; addChild(t); Tweener.addTween(f, {color:0xff0000, time:0, delay:0.0}); Tweener.addTween(f, {color:0x00ff00, time:0, delay:1.0}); Tweener.addTween(f, {color:0x0000ff, time:0, delay:2.0}); ... なんとなく書き方自体ダサい気がするんですが何か方法はないでしょうか。
620 :
619 :2008/09/19(金) 18:35:13 ID:fb6qmjPM
自己レスです、MovieClipでフレームアクションさせたらうまくできました。 お騒がせしました。
突然ながら質問が。 AS2.0の_url(絶対パスをとるやつ)から最後のファイル名を除いたフォルダパスだけとるにはどうしたらいいんですか? できるだけRegExpとかは使いたくないです。
622 :
sage :2008/09/19(金) 23:32:49 ID:O0Pn9FxL
>>621 trace( str.lastIndexOf( "/" ) );出力10
trace( str.substr( 0, 10 ) );
>>622 最後のファイル名の長さを調べてそれ以外を抜き出すのですね。
回答ありがとうございます。
最後の/の位置ですね。
>>617 全ての深度をしっかり紙に書いて把握してみれ
いい加減に作るとわけわかんなくなるよ
Flashのゲームが作りたくて、本を読んで勉強しています ある本のサンプルにジグソーパズルの作り方が載っていて その本ではjpegをライブラリに入れて、ジグソーパズル全体の大きさの四角 を「塗りのカラー」をビットマップとしてjpeg画像を塗り込み、それを線で切って ピースとしています。 この方式は理解出来たのですが、Jpeg画像の枚数を増やすとSWF自体が 大きくなってしまうので、画像を外部から読み込めないか考えています。 外部Jpegの読み込みに関しては理解していますので、どなたかヒントを よろしくお願いします
ローカルの画像を取り込んで、それを変形させるものを作りたいのですが、 ローカルの画像を読み込ませる方法についてヒントをください。 おおざっぱな流れとして、 1.ボタンとかでダイアログを開いて、画像を選択。 2.読み込み開始 3.BitmapDataとかに入れる を考えているのですがどのように出来るでしょうか? とりあえず、埋め込みで画像を変形できるところはできているので、 とにかくBitmapDataに入れられればこっちのものと考えているのですが…。 開発はFlashDevelopで、AS3書いています。
なるほど…。9までは一旦サーバ側に保存して、そこから読み出すのが定石なんですね。 あくまで趣味程度なんで fileReference に手を出してもいいかもしれません。 ありがとうございます。
632 :
Now_loading...774KB :2008/09/21(日) 08:06:50 ID:Op68wWqx
基本的な質問になるかもしれないですがどなたか教えていただければ。。。 シーン1の1フレーム目にAというムービークリップがあり Aの中にplayというフレーム名を設定しているとします、 同じくシーン1の2フレーム目にBというムービークリップ があり(この時同じ2フレームにAはありません。)、 Bの中にあるボタンをon(release)でAのplayというフレーム には飛ばせないのでしょうか? 同じフレーム内になければ_root.A.gotoAndPlay("play"); では動かないことまではわかったのですが、その場合の 動かし方がわかりませんでした。 ちなみに、playから動かしたいので、シーン1のフレーム1 に飛ばす方法は取れない状態です。 FlashCS3のAS2で記述しています。
・1フレームにA(タイムラインを持ちフレーム名"play"がある)、2フレームにB ・Bを押して1フレに戻ると、Aが"play"へ飛んでいる ってことに置き換えていいなら、フラグを用意するといい //1フレームアクション this.stop(); this.A.stop(); if (flg == undefined) {//flgが定義されていなければ初再生 flg = 0; } this.A.onRelease = function() { this._parent.gotoAndStop(2); }; if (flg) { this.A.gotoAndStop("play"); } else { this.A.gotoAndStop(1); } //2フレームアクション this.B.onRelease = function() { flg = 1; this._parent.gotoAndStop(1); };
634 :
Now_loading...774KB :2008/09/21(日) 10:01:27 ID:Op68wWqx
>>633 632です、
ありがとうございます!
早速設置してみます!
最近「FLASH CS3&AS3.0」を勉強しはじめた初心者です。 「タイトル画面」→「ゲーム画面」→「ゲームオーバー画面」→「タイトル画面」・・・ という流れの、簡単なシューティングゲーム作りを通してAS3.0を覚えようとしています。 スクリプトは全てasファイルに書きたいと思っているのですが、「addFrameScript」を使うのが一般的なのか、 「addFrameScript」を使わないで書くのが一般的なのか、いまいちよくわかりません。 「addFrameScript」を使ったほうが簡単のような気もするのですが・・。 どちらが一般的なのでしょうか? ちなみに、手元にあるAS3.0の本には載っていませんでした。。 以上、よろしくお願いします。
>>635 ASオンリーでいくなら使わないのが一般的
addFrameScriptはリファレンスに載ってない隠しAPIだから
これを使うと流れがわかりにくくなってしょうがない
>>636 あ、かえってわかりにくくなるんですね。
ではaddFrameScriptを使わずに作ってみます。
ありがとうございました!
質問です。 スペースで区切られた文字列を分解する方法を教えてください "abc def ghi" -> ["abc","def","ghi"]
自己解決しました。 split関数を使えば良いですね
教えてください! A_mcのフレームに onClipEvent (load) { var imgFlder:String = "mein/sub/img/BtnImage"; // loadMovie(imgFlder+"1.jpg", this.sum_01_mc.board); loadMovie(imgFlder+"2.jpg", this.sum_02_mc.board); loadMovie(imgFlder+"3.jpg", this.sum_03_mc.board); と書いて外部から画像を読み込ませています。 これを外部テキスト、もしくは外部XMLに書いて読み込ませ、 実行させる場合にはどのようにしたらよいのでしょうか??? 今日、朝からやってて疲れました・・・・
>>640 LoadVarsクラスでテキスト内容を読み込む
actionscriptの質問なのですが、ブラウザでflashを実行したとき、 そのswfファイルが置かれていたサーバのIPを取得するにはどうすればいいですか?
>>643 質問は放置する癖にそういうことだけは素早いですね。
>>644 テンプレ読んでな
掲示板のルール理解してな
ルール理解する気がないならromってるかどっか行ってな
647 :
Now_loading...774KB :2008/09/22(月) 12:40:57 ID:BkvG6UuJ
var my_lv: LoadVars = new LoadVars(); my_lv.onLoad = function(success: Boolean) { if (success) { trace(this.toString()); } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("http: //www.helpexamples.com/flash/passvars.php");
flash上で書き込んだデータを同じflashに保存するには(ニコ動みたいな感じ) どうすればいいかわかる人、教えてくださいませんか?
>>648 > flash上で書き込んだデータを同じflashに保存する
こういう事はできません。
データを保存するためには別途サーバーサイドのプログラムを用意して、それにデータを渡すしかありません。
ニコ動のコメントは外部のデータベースにアクセスしてます。
ただし、保存場所がローカルで良ければSharedObjectで実現可能です。
(この場合保存したデータに他の人からはアクセスできません。)
526 名前:Now_loading...774KB[sage] 投稿日:2008/09/22(月) 14:06:59 ID:Em2KzTUV ニコニコ動画みたいに、動画とコメントを同期させて表示させるにはどうするんでしょうか? だれかわかる人います?
>>648 マルチポストって知ってます?
複数の場所で同じ質問をする事です。
これってインターネット上で共通のマナー違反なんです。次からやめましょうね。
すぐに知りたいことだからここに書き込むんです。 すぐに情報が引き出せないなら別のところに移ります。 マルチポストかどうか判定されるまでに情報が引き出せなければあきらめるだけです。 そして次の新しい質問は別のIDでポストすればいいですからね。
マナー違反?知ったこっちゃない。 すぐにレスポンスが返せないやつが悪いんだよw
まぁ結果を急ぐあまり解答が貰えなくなる君が一番損をするからどうでもいいんだけど
>>653 他力本願の人間が言う言葉ではないなw
頭悪過ぎてまともな質問文も書けないみたいだから
どこいったって駄目だと思うよ
自分で解決しなさい。
俺がここに書くことは20分以内に解決しろ。 20分あれば大抵解決するからな。
657 :
Now_loading...774KB :2008/09/22(月) 20:27:05 ID:P8JVubbf
お前らに解決させて、その時間で俺は別の問題を解決する。 いわば並列処理
NGID登録:ID:lApgHlK/ これですべて解決
別のIDを使って、もっとおしとやかに質問するので無問題
(´・ω・`)おっぱい
あれ?夏休みってもう終わったんじゃ・・・
なんか無能な奴がまた湧いてるなw 単位落としたぐらいでやけになるなw
お決まりのセリフ 「何の役にも立たないクソスレだな」
ここみると自信がつく
下を見るな上を見ろ
667 :
Now_loading...774KB :2008/09/24(水) 10:36:26 ID:tv0R1bAh
665<>666 教えてください。 obj = _root.attachMovie("side_obj","str" + i,i,〜 深度が10以上は、visibleプロパティを変更したいです。
obj = _root.attachMovie("side_obj","str" + i,i,{visible:i < 10});
669 :
Now_loading...774KB :2008/09/24(水) 11:25:27 ID:tv0R1bAh
>>668 ,{visible:i < 10}
iが10より小さければvisible = true
という意味でしょうか?
648です。マルチポストっていうんですね。マナー違反とは知らず、失礼いたしました。以後気をつけます。 また、ご回答ありがとうございました。また困ったときに助けていただければ幸いです。それでは失礼します。
671 :
Now_loading...774KB :2008/09/24(水) 22:13:54 ID:Iv49WfgF
環境)OS:WinXP-Pro,Mem=3GB,ソフト:Flash8-Pro(Player8,AS2.0) ピクセル単位の色の取得 白黒の10*10ピクセル程のBMPをMC化し(bmp_mc)、このピクセル単位の白黒の 位置をBitmapDataクラスを使って把握しようとしていますが、うまく出来ません。 目的の動作の前段階としてBMPサイズを取得しようと思っています。動作を書いた bmpPixcelFunc() をボタンアクションで呼び出すことはできるのですが、肝心の高さ と幅が undefined になります。 フレームアクションに書いたASは以下の通りです。 import flash.display.BitmapData; //BitmapDataクラスをインポート var bmpData:BitmapData = new BitmapData(bmp_mc._width, bmp_mc._height, true); //新規ビットマップデータのインスタンス // function bmpPixcelFunc(bmd:BitmapData) { //ビットマップデータを解析 trace("bmpPixcelFunc"); // bmpPixcelFuncは表示される trace("高さ= "+bmd.height); trace("幅= "+bmd.width); // bmp_mc._heightなら、10などと出ますが・・・ // var pixelColor:String = bmd.getPixel(0, 0).toString(16); //試しに位置(0, 0)の色を取得 } ボタンの方は、on (release) で bmpPixcelFunc(bmd); です。 すいませんが、アドバイス願います。
bmdって渡してるけど、それどこにもなくね?
>>671 ボタン押下時
bmpPixcelFunc(bmd);
↓
bmpPixcelFunc(bmpData);
では?
674 :
Now_loading...774KB :2008/09/25(木) 21:34:32 ID:qvFstGVn
CS3のAC2で書いています。 attachMovieで増やしたmcをステージ上のmcに追わせ、 ヒットしたら、当たったmcが変化するというのをやりたいです。 _root.mca = "mc_a"+_root.adep; this.attachMovie("mc_a",_root.mca,_root.adep); _root.adep++; こうやって増やしているのですが、hitTestで当たった先のmc名をどうするかで困っています。 相手は連番で無限に増えて行くので、どう指定したらいいのか解りません。 どなたか宜しく御願いします。
675 :
671 :2008/09/25(木) 21:41:00 ID:nS8BIz8Q
>>672-673 レス有難うございます。
bmpPixcelFunc(bmpData); を試しましたが、駄目でした。
あと、「bmdを渡す」とはどういう意味でしょうか?
>>674 逆に考える。
増加するMCのフレームアクションに、追跡するMCに当たったら変化を生じるようにする。
つまり、100匹のネズミを追う猫の場合、ネズミMCをダブルクリックして上のようなASを書く。
677 :
Now_loading...774KB :2008/09/25(木) 22:21:43 ID:qvFstGVn
>>676 有り難う御座います!そうですね…気づきませんでした。なんという馬鹿…。
とりあえず試してみます!
678 :
Now_loading...774KB :2008/09/26(金) 15:28:26 ID:THIGXRlX
as3です Loaderオブジェクトで外部からサムネイル画像を100枚ぐらい読み込むとします。 そのために、forループ文で、 ・Loaderオブジェクトを梱包するスプライト(Wrapper) と、 ・写真を読み込むLoaderオブジェクトそのもの を作り、100枚の写真がずらりと横に並ぶまではうまくいきました。 ※一つのスプライトの中に一つのLoaderオブジェクト(写真)が入っているということです ですが、traceで、Loaderオブジェクトの横幅を調べると、 ゼロになっています。 さらにLoaderオブジェクトを梱包するスプライトの横幅も、 traceするとゼロになっています。 Loaderオブジェクトの横幅は読み込んだ写真の横幅に関係なく、ゼロになるんでしょうか? スプライトのWrapperのwidthを仮に100pxとすると、 写真がすべて見えなくなってしまいました。 横幅はどうやって設定したらいいでしょうか。
いや普通に読み込んでからwidthでいいだろ Spriteでラップする意味もわからん var l:Loader = addChild(new Loader()) as Loader l.contentLoaderInfo.addEventListener(Event.COMPLETE,function(){trace(l.width)}) l.load(new URLRequest("hoge.jpg"))
680 :
Now_loading...774KB :2008/09/26(金) 23:04:59 ID:eDty70e3
sendAndLoadのことで現在悩んでおります。お助け下さい。 name1というテキスト入力とresultというダイナミックテキストがあり、ボタンに次のようなスクリプトを書きました。 on (release) { System.useCodepage = true; var send_lv:LoadVars = new LoadVars(); var load_lv:LoadVars = new LoadVars(); send_lv.name1 = name1.text; load_lv.onLoad = function(success) { if(success==true){ result.text=this.name2; }else{ result.text="通信失敗"; } }; send_lv.sendAndLoad("PHP絶対パス", load_lv, "POST"); } そして、PHPは次のようにしました。 <?php print('name2='.$_POST['name1']); ?> このswfを直接動かしても、HTMLの中に埋め込んでもうまく動作しますが、そのHTMLファイルをホームページにアップすると 「通信失敗」となってしまいます。 この原因がわかりません。どなたかお知恵をお貸し下さい。
681 :
Now_loading...774KB :2008/09/27(土) 00:43:44 ID:EZpr8eQE
"PHP絶対パス"って何を指定してるの
682 :
680 :2008/09/27(土) 00:50:32 ID:FzKvB/W5
>>682 crossdomain.xmlはあるの?
684 :
680 :2008/09/27(土) 07:53:36 ID:FzKvB/W5
>>683 さん、「crossdomain.xml」というのは初めて聞きました。
私は、
http://www.1art.jp/を参考に勉強しているのですが 、FLASHからPHPにデータを送ったり、
データを保存したり、データを読み込んだりすることは問題なかったのですが、このsendAndLoadが
どうしてもうまくいかないのです。
crossdomain.xmlはおそらく無いと思いますが、今から調べてみたいと思います。
ありがとうございました。
Airでキーロガーみたいなのって作れますか? アプリケーションのウィンドウがアクティブじゃなくても キー取得できるみたいなのです。
できない。 一時期それでユーザー名とパスワード抜き取るクラックが流行って、 できないように修正された。
687 :
Now_loading...774KB :2008/09/27(土) 09:56:11 ID:+pZF67nb
ランタイム共有用に書き出しの際に入力する URL って どんな意味があるの? 読み込む側が必要なのは判るんだけど…
Away3Dなどのライブラリを試そうと思って、サンプルを漁っていたのですが ほとんどがflaファイルで提供されていました。 フリーでflaファイルを扱えるソフトはないのでしょうか? 開発にはflexSDKとエディタのみでちまちま作るつもりなので、サンプルの中味さえ見れればいいんですが
689 :
Now_loading...774KB :2008/09/27(土) 11:52:50 ID:0ok+QN84
super()でスーパークラスのコンストラクタの引数をサブクラスのコンストラクタ引数で書き換える方法はやった事があるのですが スーパークラス内のメゾットの引数をサブクラスから書き換えるという事はできるのでしょうか? スーパークラス側で protected function goMove(x:Number, y:Number, w:Number, h:Number):void { このx,y,w,hをサブクラス側で指定するという事は可能なのでしょうか actionscript3です、よろしくお願いします
690 :
680 :2008/09/27(土) 12:27:21 ID:rd6K8L3s
>>689 super.goMove(1,2,3,4);
>>690 ホスト名がぴったり一致しない限り必要だよ。
IPアドレスなんかが同じだったとしても。
693 :
689 :2008/09/27(土) 23:09:13 ID:dT4DedqN
>>691 super.メゾットで試した所値を渡す事ができました
ありがとうございました!
694 :
690 :2008/09/28(日) 04:37:36 ID:Y0qa1f5w
>>692 さん、ありがとうございます。
もう一度やってみます。
695 :
Now_loading...774KB :2008/09/28(日) 10:05:04 ID:2gqkkW7m
WinXP-ProでFlash8-Pro(AS2.0)を使っています。 ヘルプを参照し、Matrixクラスを使ってMCを歪ませたいのですが、うまく出来ません。 下のASでは、root上にあるmc1というMCを、ボタンで関数disorting()を呼び出すことに よって、元の正方形の上辺を移動させて(スライドさせて)ひし形を作ることを目的に書 きました。(MCの基準点は左下の角です) import flash.geom.Matrix; // Tx = this.mc1._x; Tx = this.mc1._y; //位置はそのまま // function disorting() { var skX = 1; //仮に1を入れています var skY = 1; // var myMatrix:Matrix = new Matrix(0, skY, skX, 0, Tx, Ty); // _root.mc1.transform.matrix = myMatrix; // } skXの値を色々変えましたが、MCが回転してしまいます。 どうしたら良いでしょうか?
SEFファイルからサーバにデータを送る方法を探してます。SWFで書き込んでファイルとしてサーバに飛ばしたいのですが、 (その逆も)わかる人いたら教えてください。
699 :
695 :2008/09/29(月) 19:40:01 ID:szGcbCaQ
>>697 Thx。出来ました(座標値変数の間違いを併せて修正)。
紹介のサイトの行列要素はFlash8のヘルプの並びと違っていますね。
(b⇔c)
そのせいか、歪の方向がXYで入れ替わっています。
インポート文でワイルドカード使わずに個々にインポートする事が推奨される理由って、 厳格さ的な意味合いでですか? import flash.events.*; ってした方が楽ですし、FlashDevelopなんかではコード補完も効いて使いやすいんですが、 こういう指定(使わないものも読み込む)すると何かデメリットありますか?
AS3.0で if文の条件に「MovieCripが特定のフレームになったとき」 というのを使いたいのですが、どういった記述になるのでしょうか?
>>700 コンパイルするときにコンパイラがライブラリを検索する時間が短縮できる
あとは、ソースとして明示的にとかだけど、大量にある場合は*でもいんじゃね
>>701 一番簡単なのはそのフレームにAS書く
あとはEnterFrameイベントでcurrentFrameをチェックする
>>702 currentFrameがまさにそれでした。
ありがとう
705 :
704 :2008/09/30(火) 12:57:06 ID:5LAmHauj
書いてから、読み返してみて気づきました。 ランタイムバージョン: AIR 1.0 と書いてあるから、AIRじゃないと使えないんですね。 Flashでも使えてもよい定数だと思うんですが、 仕様みたいなんであきらめます。 #リファレンスのランタイムバージョンも注意して読まなきゃいけなんだな。
706 :
Now_loading...774KB :2008/09/30(火) 13:27:51 ID:FqpjVlmo
actionscript2です。ご教授お願いします。 インスタンスを複数生成してそれらのインスタンスを一まとめに して大きさや座標を変更したいのですが、お願いします。
>706 attachMovie() インスタンス名._x インスタンス名._y インスタンス名._xscale インスタンス名._yscale
708 :
Now_loading...774KB :2008/09/30(火) 13:56:16 ID:FqpjVlmo
>>707 個々に設定するのではなく、別の方法はありますか?
709 :
Now_loading...774KB :2008/09/30(火) 14:15:48 ID:YMCRFJr0
ひとつのMCに全部入れてMCのサイズ、座標変更
>708 for() while()
711 :
Now_loading...774KB :2008/09/30(火) 14:25:31 ID:FqpjVlmo
>>709 スクリプトで実装させる方法を教えてください。
ひとつにしてマスクを設定しようと思っております。
712 :
Now_loading...774KB :2008/09/30(火) 15:16:42 ID:YMCRFJr0
>>711 this.createEmptyMovieClip("MC", this.getNextHighestDepth());
for (i=0; i<10; i++) {
MC.attachMovie("instance", "instance"+i, MC.getNextHighestDepth(), {_x:Math.random()*100, _y:Math.random()*100});
}
MC._xscale = 50;
713 :
Now_loading...774KB :2008/09/30(火) 15:18:02 ID:FqpjVlmo
>711ご意見を参考にいろいろ試すことによりうまく実装できました。 ありがとうございます。
714 :
Now_loading...774KB :2008/09/30(火) 15:20:02 ID:FqpjVlmo
>>712 ありがとうございます。
まさに思い描いた感じです。
参考にしてみます。
とことん無視されたわ くるんじゃなかった
flahs版はコピペして動く物しか受け付けない 礼儀知らずばかりだよ
>>702 返事遅れました それほど違いは無さそうなんですね ありがとう
718 :
Now_loading...774KB :2008/09/30(火) 19:07:03 ID:J/cIXyN9
コミュニケーションスキルがゼロの奴が何やっても何も動かんさw プログラムと同じでルールってもんがあるわな
質問の本音は完成品クレクレ
720 :
687 :2008/10/01(水) 07:18:28 ID:rL4gLnc1
回答無しか…
721 :
706 :2008/10/01(水) 09:39:01 ID:MpIpYHyP
>>715 すいませんでした。
またよろしくお願いします。
ActionScriptでTweenerを使って色を赤→白とトゥイーンさせたい場合、 0xff0000 を 0xffffff までTweenerで変化させると その間にある赤以外の色も表示されてしまいます。 うまく他の色を表示させずに変化させることはできませんでしょうか?
>>722 背景に白いオブジェクト用意して
Tweener.addTween(myMovieClip, {_alpha:0});
で、出来る予感。
質問です。 getChildren() や getChildAt(x) などで取得したオブジェクト(配列)が, どんな種類のコンポーネントかを判別する手段はありますでしょうか? ご教示願います。よろしくお願いします。
AS3.0で、 画面全体を揺らすエフェクトが必要になり 画面上にある各mc名.y の変化で、画面を揺らしているように見せているのですが 画面に出るmcが増えるたびにどんどん行が増えてしまいます。 もっと効率的な指定の方法などありませんでしょうか?
>726 入れ物としてのmcをつくって全部中に入れる このmcを揺らすだけで済む
>>725 どういう目的か解らんがisとかasとかtypeof使えばいんじゃね
729 :
704 :2008/10/03(金) 16:55:25 ID:0HNTJGKW
Flash CS3でグラフィカルなコンポーネントを作って、Flexから使いたいと思っていますが、 やりたい事は、プロパティの変更によって見た目が変わるといったことです。 どのようにしてFlash CS3で作成したコンポーネントに、プロパティやメソッドを定義すべきか分かりません。 自分で確認できたのは、 ・Flex Component Kit for Flash CS3を使うのは分かりました。 ・Flash CS3で書いたMovieClipを、swc化して、Flexで貼り付けられたところは確認しました。 この段階では、操作できないただの絵です。 Flash CS3でメソッドやプロパティを用意してあげるべきだと思うのですが、 どこにクラス定義を書いたらよいのでしょうか?
>>728 isを使ったら思い通りのことができました。
ありがとうございました!
FlashCS3&AS3での質問です。 メインタイムラインの1フレーム目にMCを設置したとします(インスタンス名:testmc) そしてtestmcはaddEventListener(Event.ENTER_FRAME,hoge); のようなイベントを実行していたとします。 そこで、メインタイムラインの100フレーム目とかでそのMC(testmc)を削除したとします。 (この場合メインタイムラインからtestmcがremoveChildされたという解釈でいいのかな?) この場合removeEventListener(Event.ENTER_FRAME,hoge);を実行してないので testmcが裏でそのイベントを永遠と処理し続けることになりますよね? メインタイムラインからMCを削除したと同時にremoveEventListenerが呼ばれるようなプログラムを組みたいのですが testmcがremoveChildされた瞬間に呼ばれるイベントとかは存在するのでしょうか? 今のところ、そのMCを消す直前にキーフレームを作ってremoveEventListenerを呼んで対策しています。 何かいい方法がございまいたら教えてもらえると有り難いです。 よろしくお願いします!
>>731 removeChild(表示リストから外す)時に呼ばれるとかは無いと思う
nullする時点でリスナー消去やタイムラインstopなどの終了処理を自分で記述する
734 :
Now_loading...774KB :2008/10/05(日) 08:11:48 ID:Sdwe38Mg
なにこの展開w mc.addEventListener(Event.REMOVED,func); function func(event:Event):void{trace("ステージ上から消去されました");} removeChild(mc); 揃いも揃ってまあwいろんな所が不自由な奴ばっかだなw
736 :
Now_loading...774KB :2008/10/05(日) 08:52:36 ID:2KEA/Arr
AS3のLoaderでswfをload後に、PROGRESSイベントでは全バイト読み込まれているのに、 INITやCOMPLETEにならない特定のswfがあるんですが、原因を追跡する方法はありますか? IO_ERRORイベントや try { loader.load(target); } catch (error:Error) { } にも引っかからないんですが
>>727 今ある中ではそれが効率的ですね
遅くなりましたがありがとうございました
質問です。 ホームページに動画データの入ったflashを載せたいのですが、flash自体は載るのに 動画が表示されません。 <!--flashを表示--> <embed src="flash.swf" width="550" height="400" bgcolor="#ffffff" で記述したんですが・・・ 動画データは同じファイルに入ってます。 困ってます・・・たすけてください。 あ、AS3を使ってます。
アダルトビデオか? 俺にも見せろ。
740 :
Now_loading...774KB :2008/10/05(日) 21:58:40 ID:usVPpYR2
教えてください。 あるmcをクリックすると、そのたびに「vacant」「occupied」という2つが入れ替わるものを 作りたいと思っています。 最初は、swapDepthを使っていたのですが、attachMovieの方がいいのではないかと思い、 いろいろ試行錯誤しているところです。 mc = _root.attachMovie( "occ", "mc1", 1 ) ; mc._x = 10 ; mc._y = 20 ; mc1.onRelease = function() { mc = _root.attachMovie( "vac", "mc2" , 1) ; mc._x = 10 ; mc2._y = 20 ;} このようなスクリプトにおいて、新しくロードされたvacに対するボタンアクションはできるのでしょうか? 最初は、透明のボタンを重ねておいて、その押された回数によって「vacant」「occupied」が入れ替わるようにしていたのですが、 このようなボタンが50個もあるので、なんとかまとめる必要があるのです。よろしくお願いします。
>>738 ローカルでは再生されるの?
Flash自体読み込まれてないって事はないの?
>>740 mc2.onRelease = function(){ }
表示を切り替えたいだけなら_visibleでいいんじゃない?
>>740 表示を切り替えさえできればいいのかな?
だったら、MCの_currentframeに応じてそのMCのなかのvacantフレームとoccupiedフレームを移動とかもありでは?
スクリプトも状態に応じて対応を変える関数をひとつつくっておいて
forかなんかですべてに割り当てるとか。
目的を明確にしたほうがより適切な方法が見つかるかもよ。
743 :
740 :2008/10/05(日) 22:54:27 ID:usVPpYR2
>>741 さん、ありがとうございます。
mc2.onRelease = function(){ }
は、入れ子にするんでしょうか? 入れ子にしても1回しか反応しません。
並列に置くとまったく反応しません。
並列に置くのは、
mc = _root.attachMovie( "occ", "mc1", 1 ) ;
mc._x = 10 ; mc._y = 20 ;
mc1.onRelease = function() {
mc = _root.attachMovie( "vac", "mc2" , 1) ;
mc._x = 10 ; mc._y = 20 ;}
mc2.onRelease = function() {
mc = _root.attachMovie( "occ", "mc1" , 1) ;
mc._x = 10 ; mc._y = 20 ;}
としてみたのですが、どこかに致命的なミスがあるんでしょうか?
744 :
740 :2008/10/05(日) 23:01:31 ID:usVPpYR2
>>742 さんも、ありがとうございます。
最終的には、FLASHからPHPに送ってSQLiteでデータベース化し、それをPC上のswfファイルで
読み込むというのが目標です。ほとんどすべて初心者なので、果てしなく遠い道ですが・・・
したがって、表示だけではなくて、そのデータを記録する必要があります。
>>744 いや、訊きたいのはつねにoccとvacふたつのMCを表示する必要があるのか?
それとも、同じ場所に、状況に応じてどちらか一方が表示されていればいいのか?ということ。
状態の表示と記録等の作業とは分けて考える。一緒にしない。
初心者ならなおさら一度にすべてをやろうとせず、問題を細切れにして
ひとつひとつ解決していくほうがいいと思うよん。
ただその前に、最終的にどういう流れで何をしたいかの説明があるといいけど。
>>743 入れ子にする。1回しか反応しないのは新たにattachMovieしてるから。
新たにattachMovieしたMCにもボタンアクションを記述しないとだめ。
それだと永遠入れ子が続くからこんなかんじでどう?
occ_mc = _root.attachMovie("occ", "mc1", 1);
occ_mc._x = 10;
occ_mc._y = 20;
//
vac_mc = _root.attachMovie("vac", "mc2", 2);
vac_mc._x = 10;
vac_mc._y = 20;
//
occ_mc.onRelease = function() {
this._visible = false;
vac_mc._visible = true;
};
vac_mc.onRelease = function() {
this._visible = false;
occ_mc._visible = true;
};
747 :
740 :2008/10/05(日) 23:30:16 ID:usVPpYR2
>>745 さん、ありがとうございます。
実は、forを使ってこのボタンをいくつでも配置することはできています。
そして、それらのインスタンス名を2次元の配列に格納し、 _root[arr[j][i]]で参照して、
普遍的な関数を作ろうと考えてみました。
for( i = 0; i < 2 ; i++) {
for( j = 0; j < 3 ; j++) {
btnName= _root[arr[j][i]];
btnName.onRelease = function() { }
}
}
しかし、肝心の関数部分で止まってしまったのです。そこで単純化しようと思ってやってみたのですが、
どうにもうまくいきません。あなたの言われる「状態に応じて対応を変える関数をひとつつくっておいて 」
というのができないのです。そもそも、最初から無理なことをやろうとしているのではないかと心配になって、
質問させていただきました。
748 :
740 :2008/10/05(日) 23:35:33 ID:usVPpYR2
>>746 さん、ありがとうございます!!!
素晴らしい!
「1回しか反応しないのは新たにattachMovieしてるから。」そうは感じておりました。
しかし、初心者の悲しさでデッドロックから抜けられませんでした。
どうして動くのか、今からじっくり考えてみたいと思います。感謝、感謝。
>>736 うろ覚えで申し訳ないけど、それ関係で何かバグがあるって見た覚えがあります。
なんだったかなぁ、、、COMPLETEを発行せずに終わっちゃうんだったかな?なんかそんなの
750 :
738 :2008/10/06(月) 13:11:28 ID:j7I+Fyra
<<741 いえ、ローカルのHTMLファイルでも表示はされてません。まだアップはしてないので・・・ flash自体は読み込まれてます、flashにflvplaybackで入れ込んでいるのですが、肝心の動画だけが 表示されないのです・・・swfファイルには動画は表示されているのですが・・・
751 :
Now_loading...774KB :2008/10/06(月) 14:34:50 ID:71akw7qm
ドキュメントクラス内で設定した変数があるのですが、 それをムービークリップの、mcTestのフレームアクション上から アクセスするにはどうすればいいでしょうか。 ドキュメントクラス内 public var _direction:String = "right"; ムービークリップmcTest if(MovieClip(root)._direction == "right"){ trace("hoge"); } これをすると、 TypeError: Error #1034: 強制型変換に失敗しました。flash.display::Stage@1e485f99 を flash.display.MovieClip に変換できません。 となってしまいます。 ドキュメントクラス内の関数等からは、 問題なく_directionの値を取り出すことができます。
MXMLを使わずにActionScriptのみでFLVプレイヤーを作っています。 flash.media.VideoでFLVを表示させると動画の周りに余白が表示されてしまいます。 MXMLだとlayout="absolute"に設定すれば余白がなくなるようですが asのみの場合はどう書けば余白をなくすことが出来ますか?
754 :
741 :2008/10/07(火) 01:40:42 ID:vSCGf/4x
>>750 ・flash自体(=swf)は読み込まれてるのに動画が表示されてない
・swfファイルには動画は表示されている
swfを直接再生すると動画は表示されるが、
htmlにswfを埋め込むとflvplaybackの枠とかは表示されるが動画が表示されてないって事?
もしそうならすみませんが私にはわかりません
>>750 読み込む動画がH264/AACエンコードとかで、
ブラウザのFlashPlayerのバージョンが9.0.115.0以前とか?
756 :
750 :2008/10/07(火) 13:24:41 ID:WI3Iuoc5
いえ、flvplaybackの枠も表示されません。 読み込む動画はyoutubeから落としたflvファイルでブラウザのバージョンは9.0.124.0です。 あ、Apacheを使って、PHPで書いてます。
そりゃmimeの設定できてねーんじゃねーの?
758 :
756 :2008/10/07(火) 14:37:35 ID:WI3Iuoc5
ありがとうございました!おかげで解決しました。757さんの言うとおり、mimeの設定が出来ていなかったようです。
759 :
736 :2008/10/08(水) 00:13:46 ID:gi3Jp8Qo
質問させてください。開発環境はAS3を使ってます。 actionscriptを使ってチャットシステムを作りたいのですが、ちょっと変わった仕様にしたくて、 チャットのログを残して、それをもう一度再生でき、その上から新たに書き込みが出来る。という風にしたいのですが どうすればそれが、もしくはそれに近い形のものが出来るか、力を貸してください。
>>760 漠然としすぎてて何が聞きたいのかよくわからない。動画のないニコニコ動画みたいなもんなのか?
サーバープログラムとFlashクライアント組み合わせればできるんじゃないの。比較的難しいと思うけど。
>>761 あ、そんな感じです。サーバプログラムとflashクライアントですか……ちょっとわかりません。
申し訳ありませんがもう少し詳しく説明してもらえないでしょうか?
>>762 逆に現時点で何がわかりますか?ASは?PHPは?DBは?FMS/FCSは?
やりたいことは別として、基本的なことから理解していかないと、このレベルのFlashを作るのは難しいと思う。
それくらい広い範囲の知識がないと実現できない構想です。
764 :
Now_loading...774KB :2008/10/08(水) 14:43:15 ID:VeBvuOje
mime知らんでニコニコみたいなの作りたいとか言ってた奴じゃねーのどーせ? そいつもうほっとけ。キリないわ
765 :
Now_loading...774KB :2008/10/08(水) 14:45:57 ID:VeBvuOje
ボクちゃんは1冊本買って読んでね ニコニコのクライアントの作り方みたいなの、AIRの紹介本かなんかでのってたような気がするから、それ丸写ししてくれ
>>763 使える物はASとPHPです。データベースもある程度は出来ます。PHPは掲示板を作る事くらいは出来ます。
足りない知識は補っていくつもりです。何とかして作りたいのです…
つか、広範囲な知識が必要っていわれてるように、ここで全部を詳しく説明なんて無理。 いわれたキーワードや本なんかを参考にすすめていって、もっと問題点が絞り込まれた段階で 質問したほうがいい。
AS2.0でゲームを作っています 点数をとると画面下に並べているMCの色が変わり、点数を表示するようにしています。 ■■■■□□□□←こんな感じです。 各四角のMCにインスタンス名mark1〜30までを付け、 四角をまとめたscoreGroupe_mcに onClipEvent (enterFrame) { if (_root.seikaiNum == 1) { this.mark1.gotoAndStop("on"); } } と書き、四角の色を変えて表示させています。 今のところ、上のスクリプトを 1〜30まで書き連ねることで表示としては出来ているのですが これを、簡潔にする場合はどのようにしたらいいのでしょうか? よろしくお願いします
>>768 markに連番ついてるならforループで処理すればいいと思うが、
seikaiNumの値とonにするmarkの数が対応しているなら、
seikaiNumの値が増減する時に、
this.scoreGroupe_mc["mark"+String(_root.seikaiNum)].gotoAndStop("on");
みたいにして表示を増やしていけば、enterFrameいらないと思う。
770 :
Now_loading...774KB :2008/10/08(水) 16:18:02 ID:iD7k9kcY
24時間耐久10分でフラッシュを作れ!
┏━┓ ┏━┓ ┏━┓ ┏━┓
┏┛┏┛ ┏┛ ┃ ┏┛ ┗┓ ┏┛┏┛
┏┛┏┛ ┗┓ ┃┏┛┏━┓┗┓ ┏┛┏┛
┏━┛ ┗━┳┓ ┃ ┃┃ ┃ ┃ ┃┏━┛ ┗━┳┓
┗━┓ ┏┳┛┃ ┃ ┃┃ ┃ ┃ ┃┗━┓ ┏┳┛┃
┃ ┃┗┳┻┓ ┏━┳━━┓ ┃ ┃┃ ┃ ┃ ┃ ┃ ┃┗┳┻┓ ┏━┳━━┓
┃ ┃┏┻┓┗┓┏┛┏┛┏┓┗┓┃ ┃┃ ┃ ┃ ┃ ┃ ┃┏┻┓┗┓┏┛┏┛┏┓┗┓
┃ ┃┃ ┃ ┗┛ ┃ ┗┛ ┃┃ ┃┃ ┃ ┃ ┃ ┃ ┃┃ ┃ ┗┛ ┃ ┗┛ ┃
┃ ┃┃ ┣┓ ┏┫ ┏━━┛┃ ┃┃ ┃ ┃ ┃ ┃ ┃┃ ┣┓ ┏┫ ┏━━┛
┏┛┏┛┃ ┃ ┃ ┃ ┃ ┃┏━┓┃ ┃┗┓┗━┛┏┛ ┏┛┏┛┃ ┃ ┃ ┃ ┃ ┃┏━┓
┏┛┏┛ ┃ ┃ ┃ ┃ ┗┓┗┛┏╋┛ ┗┓┗┓ ┏┛ ┏┛┏┛ ┃ ┃ ┃ ┃ ┗┓┗┛┏┛
┗━┛ ┗━┛ ┗┛ ┗━━┛┗━━━┛ ┗━┛ ┗━┛ ┗━┛ ┗┛ ┗━━┛
┓┏┓ ┓ ━┓ ┏┓┏┓ ┏┓┏┓ ━┓ ━┓ ┏━ ┏━┓
┃┃┃ ┃ ┏┛ ┃┃┃┃ ・ ┃┃┃┃ ┏┛ ━┫ ・ ┃ ┃ ┃
┃┃┃ ┃ ┃ ┃┃┃┃ ・ ┃┃┃┃ ┃ . ┃ ・ ┗┓ ┗━┫
┻┗┛ 月 ┻┗━ 日 ┗┛┗┛ ┗┛┗┛ ヨリ ┗━ ━┛ .━┛ .━┛ マデ
参加者(Flash制作者・お題投下者・観覧者)募集
現行:
http://pc11.2ch.net/test/read.cgi/swf/1206509015/
>>769 今ちょうど、上に書かれている事をやってみている最中でした!
変数_root.seikaiNumをMc名にくっつけるところで悩んでいたので
とても助かりました
ありがとうございます!
772 :
Now_loading...774KB :2008/10/09(木) 03:23:29 ID:aP0WSrHE
as3です。 クラスメソッドが、呼び出し元のオブジェクト(外部クラスから生成されたオブジェクトです) を参照する方法ってありますか? ※引数を渡す方法ではなく、無名関数のときのarguments.calleeみたいなものがあるかなと
773 :
Now_loading...774KB :2008/10/09(木) 05:31:20 ID:j0D+PJKY
ActionScript3.0のイベント一覧&解説ページとか無いですか? Event.ENTER_FRAME は フレーム毎によばれます。とか書いてあるページ
775 :
Now_loading...774KB :2008/10/09(木) 16:18:14 ID:sPljUQk0
>>774 イベント関連の定数の使われ方って実は
EventDispatcher派生クラスによって微妙に違うよ
さすがにEvent.ENTER_FRAMEとかはどのクラスでも一緒だけど
なのでまずEventDispatcher派生クラス側のリファレンスから調べた方がいい
AAAというmcを配置して外部swf(BBB.swf)を読み込ませているのですが 外部swfの特定のフレーム(ラベル:CCC)に飛ぶ、というアクションを実現させたいです。 現在は、フレームに AAA.loadMovie("BBB.swf"); と書いています。 前述のアクションを実現させるには、どのようにすれば良いでしょうか?
>>778 ロードするとAAAの内容がBBBになるから、AAAに対してCCCへ飛べって命令する。
ただしロード完了(少なくともBBBフレームの読み込み完了)まで待つ必要がある。
MovieClipLoaderが使えるバージョンならそっちを使うことをすすめる。
そもそもBBB.swf読み込めてる?
回答ありがとうございます。
>>779 AAA.loadMovie("BBB.swf");
AAA.gotoAndPlay(CCC);
としてみましたが、動作しませんでした。
>>780 読み込み自体は問題ないです。
>>781 本当に読み込み完了を待ってから実行してるのか?
まさか続けてその二行を書いたんじゃないよな?
// SWF7以上? AS1.0以上 AS2.0以下 var listenerObject = { onLoadInit:function( mc ){ mc.gotoAndPlay("CCC"); } }; var movieClipLoader = new MovieClipLoader(); movieClipLoader.addListener( listenerObject ); movieClipLoader.loadClip( "BBB.swf" ); // SWF6 AS1.0 AAA.loadMovie( "BBB.swf" ); AAA.onLoad = function(){ this.gotoAndPlay( "CCC" ); }; 作業中なので構文チェックすらしないけど、何かしらエラー出たり動作しなかったら自分で解決してね。ヒントにはなると思う
>>783 どうにか動作させることができました。
ありがとうございます。
>>775 _xmouse、_ymouseでマウスの位置を取得する
loadClipでAAA指すのわすれてるや
787 :
Now_loading...774KB :2008/10/10(金) 11:40:13 ID:jEdfFmam
actionscript3で、配列array1[0〜4までbitmapが入っている]という状態で A: var array2:Array = new Array(); array2 = array1; というのと B: var array2:Array = new Array(); for(var i:int=0; i<array1.length; i++) { array2[i] = array1[i]; } というのがありますが、この二つは結果は違うのでしょうか? やりたい処理はbitmap含めた配列array1のコピーでは無く 配列array2を使ってarray1の中にあるbitmapを参照したいのですが for(var i:int=0; i<array2.length; i++) { array2[i].alpha = 0; } 上のAとB、どちらの方法が正しいのでしょうか?
>>787 おそらく適切なのはこうです。
var array2:Array = array1;
これでarray2はarray1を指すようになります。
Aの場合、newした領域は使われません。
array2 と array1 は全く同じArrayオブジェクトを指すようになります。
つまり、最初に書いた記述と等価です。
Bの場合array1[i]はarray2[i]と同じ物を指すようになりますが、
Arrayオブジェクトそのものは別物です。
例えば、後でarray[0].alpha = 0.5としたときは、A,Bいずれの場合もarray2[0].alpha は0.5となります。
しかし、array1[0] = hoge; としたとき, array2[0] は Aの例ではhogeを指しますが、
Bの例では元のbitmapを指したままになります。
>>788 丁寧な解説ありがとうございます
結構複雑な事だったんですね・・・
AとB双方の違いは
A:array2がarray1そのものになる(array2のメモリ消費無し)
B:array1と別物のarray2(中身はarray1の中身の参照)が作られる
といった感じでしょうか
また調べてみたいと思います
脱出ゲームでただ画面を切り替えるだけではつまらないので、切り替える際に部屋が回転するアニメーションをつけたいのですがどうすればできるでしょうか? xscaleとか使ってみましたがうまくいきませんでした swf6ですよろしくお願いします
>>790 回転するアニメーションを自力で描くか、3Dソフトでレンダリング
ただ、プレイする側からすると回転とかのエフェクトはそれほどいらん。
その努力を内容に向けるほうが評価はあがると思われる。
>>790 意味不明でございます
そもそも部屋って何?
大体何がやりたいか想像できるけど、そんなんじゃ説明のしようもない
>>790 なるほど大変そうですね…
参考になりました!内容を重視したいと思います
ありがとうございました
AS2で初めてスクリプトを作ってます。 MovieClipを配置して、トゥイーンを使ってアルファ値を0から100に あげていき、フェードインするようにしています。 このMovieClipのattachBitmapを使用してビットマップを読み込んで フェードインさせたいのですが、attachBitmapを使用するとフェードイン してくれません。 やりかたが間違っているのでしょうか。 よろしくお願いします。 import flash.display.BitmapData; var bmp:BitmapData = BitmapData.loadBitmap("image"); map.attachBitmap(bmp,2); map._width = bmp.width; map._height = bmp.height; map._x = 0; map._y = 0;
>>795 いまいち構成を理解してないが、その場合はattachMovieを使うんじゃないのか?
回答ありがとうございます。 早速、試そうとしましたが、 attachMovieを使うと、別のインスタンスとしてMovieClipができるので シーンに割り当てたトゥーイーンがうまく動いてくれないみたいです。 よろしくお願いします。
>>797 すまんが、何がどこにいくつあり、どういう順番で、どういうことを目指しているのかわからん。
モーショントゥイーンでアルファ値を変更させたMCがあるとして、それをどうしたい?
そこに別のMCをクロスフェードしたいのか、トゥイーンするMCのほうを別のMCに重ねたいのか
そのへんもっと詳しく。
>>798 説明が下手でごめんなさい。MCは1つだけです。
まず、ASを使用せずにMCを1つ配置して、30フレームくらいかけてアルファ値を0から100にしています。
これだけで動作させると意図したように動いてくれます。
このMCにスクリプトを使用して、動的にビットマップを変えて、再生できればと考えました。
そこで、1フレーム目に、このMCにattachBitmapを使用してビットマップを取り込むように
したのですが、再生すると最初からビットマップが表示された状態(アルファ値が100?)で
フェードインしてくれません。このようなことはできないのでしょうか。
よろしくお願いします。
>>799 attachする場所が間違ってる予感・・・
map ←ムービークリップ
└sym1 ←トゥウィーンさせるムービークリップのインスタンス
で、bmpをsym1にattachすればトゥイーンが動くはず
mapにattachしたらそれは当然最初から100%で表示される