アイデアを下さい!(スライドショーについて)
Flash CS5Proの体験版を使っています。
初めてAS3.0を使っているのですが、on(press)やonClipEventに頼り切っていた僕に、イベントリスナーという巨大な壁が現れました・・・。
今回、極力シンプルなスライドショーを作りたいのですが、所々で行き詰っています。
例えば、下は「次へ」のボタンが押された場合の処理なのですが
pre.addEventListener(MouseEvent.CLICK, onPre);
function onPre(event:MouseEvent):void {
n--;
ulLoader.source =n+".jpg";
//前の画像へ行かないように
if(n == 0){
pre.visible=false;
}else{
pre.visible=true;
}
}
全体的にこのように、それがよいやり方なのかも分からずとりあえず動作している状態です。
行き詰っている点の一つは、連続した番号をつけた画像ファイル(0.jpg,1.jpg...)の最後の画像へ行ったら次の画像へ行かないようにする機能です。
僕の考えたアイデアの一つとして、何度か次の画像を読み込み、失敗したら”最後の画像”とみなせばいいんじゃないか、というのがあるのですが、読み込みの失敗を取得する方法も分かりません。
他にも
・画像サイズが違う場合(縦になっているものなど)に、キレイに縮小する機能
・現在表示中の画像の前後5枚ほどをあらかじめ読み込んでおく機能
・スライド効果(次の画像を表示する際、現在表示中の画像が画面外へ向かいつつ同時に次の画像がやってくる感じで)
これらの実装をしたいのですが、手も足も出ない状態です。
ご教示のほど、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>スライド効果(次の画像を表示する際、現在表示中の画像が画面外へ向かいつつ同時に次の画像がやってくる感じで)
最後の↑コレを忘れてました。
これはマスクでいいんじゃないですか?
AS1.0を使っていたのであれば、通常のマスクの使い方(レイヤー右クリック→マスク)は知っているものと思われます。
AS3.0でも同じ方法は使えますが、スクリプトでやるなら、
ImgMC.mask = MaskMC;
となります。
ただし、このスクリプトはひとつのマスクに対してひとつのオブジェクトしか適用できないので、
今回のように複数のオブジェクトがある場合は、
ひとつのムービークリップを用意し、その中に各画像を読み込んだ上で、
そのムービークリップにマスクを掛ける手法でいいと思います。
//予め、ムービークリップ(AllImg)と(MaskMC)を用意
for(var i=1;i<=予定枚数;i++){
this["IMG" + i] = new Loader();
this["IMG" + i].load(new URLRequest("hoge" + i + ".jpg"));
this["IMG" + i].x += 規定の幅(画像の横幅+α);
AllImg.addChild(this["IMG" + i]);
}
AllImg.mask = MaskMC;
な感じです。
で、ボタン操作でAllImg.x を操作してあげればいいです。
No.1
- 回答日時:
要点だけ。
◎読み込み失敗の検出
contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR,onError);
function onError(e:IOErrorEvent):void{
//読み込み失敗=画像なしと見なす処理
}
◎読み込み画像をキレイに縮小する。
スムージングですね。厳密にはちょっとボケた感じになりますが、
ジャギジャギよりマシです。
var IMG = new Sprite();
var LD = new Loader();
LD.load(new URLRequest("hoge.jpg"));
LD.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
addChild(IMG);
function onComplete(e:Event){
IMG.addChild(LD);
LD.scaleX = 0.25;//お好きな大きさで
LD.scaleY = 0.25;
var BMP = Bitmap(LD.content);
BMP.smoothing = true;
}
◎一括読み込み
これが一番説明難しいです。現状の構造が不明なので。
展開予定枚数分をfor文で回して読み込めば良いだけですが、
for(var i=1;i<=予定枚数;i++){
this["IMG" + i] = new Loader();
this["IMG" + i].load(new URLRequest("hoge" + i + ".jpg"));
}
で、用意しておいて、
一定時間間隔で、addChild(this["IMG" + 画像番号])で配置していけばよろしいかと。
この回答への補足
root上のフレームにこのように記述したところ(他は移動用のボタンがあるだけ)、上手く表示されたので、回答いただいたソースを組み合わせ、ボタンを押すことで次々と再生されるようになる段階までなんとかしてみます。
import flash.display.BitmapData;
var n:Number = 0;//現在再生中のファイル番号
var a:Number = 5;//先読み込みする枚数
var mc:MovieClip = new MovieClip();
var mc2:MovieClip = new MovieClip();
var space:Number= 40;//画像間の隙間
stage.addChild(mc);
stage.addChild(mc2);
stage.setChildIndex(mc,0);
stage.setChildIndex(mc2,0);
mc.x = 0;
mc2.x = -800-space;//画像サイズ
var ldr:Loader = new Loader();
ldr.load(new URLRequest(n+".jpg"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
//読み込み完了イベントの処理
function onComplete(e:Event):void{
var loadedImage:Bitmap = Bitmap(ldr.content);
loadedImage.smoothing = true;
mc.addChild(loadedImage);
var wide:Number = ldr.content.width;
mc.x=(stage.width - wide)/2;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Windows 8 Route Generator の使い方 1 2023/05/03 00:36
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Android(アンドロイド) いま3台のAndroidを使っています。 AndroidってiPhoneには無いmicroSDXCが 1 2022/05/06 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ImageMagickでgif画像の一部が...
-
Pythonでgif画像が上手く作れない
-
こんなことてしますか??
-
C#で画像を他の画像に貼り付け...
-
UWSC 画像判定と条件分岐について
-
Leafletで画像をon、offさせる...
-
UWSCの色判定
-
PowerPoint VBA で画像の鮮明度...
-
uwscについての質問です。 画面...
-
UWSCでループ処理がうまくいき...
-
画像比較
-
uwcs のマクロで画像認識をして...
-
画像のバックを透明にする方法を
-
背景画像の繰り返しについて
-
uwscの画像認識に失敗します。
-
ActionScriptで画像のフェード...
-
【EXCEL VBA】ダブルクリックで...
-
UWSCを使って画像リンクをクリ...
-
PCは表示されるがスマホでは画...
-
フラッシュでjpg画像の背景を透...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
こんなことてしますか??
-
Pythonでgif画像が上手く作れない
-
Excel ユーザーフォームで表示...
-
VBA シート毎に画像挿入
-
生成AI画像について
-
EXCEL VBA 複数のImageコントロ...
-
HTMLで画像をポップアップで表...
-
UWSCの色判定
-
UWSC 画像判定と条件分岐について
-
jQuery . プログラミング 助け...
-
VBAのユーザーフォームのイメー...
-
jqueryスライダーを2段でスライ...
-
vb.net 画像の透過について
-
【WPF】画像の切り替え
-
背景画像の繰り返しについて
-
「using Windows」でエラーが出る
-
画像処理したBitmapをピクチャ...
-
スマホでサイトの画像を長押し→...
-
UWSC 画像認識で条件分岐
おすすめ情報