画像ファイルをロードして、ステージに置く方法
画像を読み込む1
Flashで外部画像を読み込む場合、次のように書く。
1 2 3 4 5 |
var loader:Loader = new Loader(); var uRLRequest:URLRequest = new URLRequest("image.jpg"); loader.load(uRLRequest); //Loaderごとステージに置く例 addChild(loader); |
image.jpgの部分は、画像のURL。flickrやblogなどの画像でもかまわない。ローカルPCで確認する際は、swfと同じ階層に置く。相対パスの場合は、swf単体で再生する場合は、swfが基準に、htmlに貼り付ける場合はhtmlが基準になるので、注意。
wonderflに画像をアップするには次の手順
- 1)ASの編集画面時に左上のタイトル欄に「タイトル、タグを編集」があるのでそこをクリック。
- 2)さらに「+more」をクリック。
- 3)「related images:」のUPLOADボタンを押して、画像を指定する。
- 4)終わったら、okボタンをおして、タイトル編集モードから抜ける。
- 5)ブラウザのURLから、最後の「edit」の文字を削除して、リロード。つまり編集画面から抜ける。
- 6)「RELATED IMAGES」に画像がアップされている。
- 7)この画像を右クリックでURLを取り出す。
- 8)ただし、このURLはサムネールのURLなので、最後の小文字の「m」を一文字削除。
- 9)これで残ったURLが画像。拡張子がついてないが、大丈夫。
- *)まあ、使いにくいけど、もともと違う目的で作られた機能なので怒らないこと!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* * Loaderごとステージに置く例 * */ package { import flash.display.Loader; import flash.display.Sprite; import flash.net.URLRequest; [SWF(backgroundColor="0xCCCCCC")] public class Main extends Sprite { public function Main() { var loader:Loader = new Loader(); var uRLRequest:URLRequest = new URLRequest("http://assets.wonderfl.net/images/related_images/b/b1/b1a6/b1a642c6afafa6148d3be3e2732c5627a9e490bb"); loader.load(uRLRequest); //Loaderごとステージに置く例 addChild(loader); } } } |
画像を読み込む2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/* * Loaderごとステージに置く例 * */ package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLRequest; [SWF(backgroundColor="0xCCCCCC")] public class Main extends Sprite { private var _loader:Loader; public function Main() { _loader = new Loader(); var uRLRequest:URLRequest = new URLRequest("http://assets.wonderfl.net/images/related_images/1/13/135a/135ac52d87831ef88ed8817d445f1ca4df059575"); _loader.load(uRLRequest); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); } private function onComplete(event:Event):void { //読み込み完了したら、Loaderごとステージに置く例 addChild(_loader); } } } |
上記の画像の扱い方は、一番簡単な方法。いろいろ設定する必要がある場合は、次の例を参考に。
Flickrの画像を表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
/* * Flickr Services API Documentation * http://www.flickr.com/services/api/ * */ package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.filters.DropShadowFilter; import flash.system.LoaderContext; [SWF(backgroundColor="0xCCCCCC")] public class Main extends Sprite { public function Main() { var myLoader:Loader = new Loader(); var myURLRequest:URLRequest = new URLRequest("http://farm4.static.flickr.com/3467/3828917519_d209a026fb_o.jpg"); //LoaderContextを使うと、drawできるようになる。ただしcrossdomain.xmlで許可されている場合のみ //これ→http://farm4.static.flickr.com/crossdomain.xml var myLoaderContext:LoaderContext = new LoaderContext(true); myLoader.load(myURLRequest , myLoaderContext); myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); //Loaderごとステージに置く例 addChild(myLoader); //ステージ上のオブジェクト全てにフィルターをかける filters = [new DropShadowFilter()]; //flickr上の画像のページへのリンク addEventListener(MouseEvent.CLICK, CLICK); } private function CLICK(e:MouseEvent):void { navigateToURL(new URLRequest("http://www.flickr.com/photos/38149748@N03/3828917519/in/set-72157621937806331/") ); } private function onComplete(e:Event):void { //new LoaderContext(true)にしているのでbitmap化して変形できる var myBitmap:Bitmap = e.target.content; var myBitmapData:BitmapData = new BitmapData(myBitmap.width, myBitmap.height); myBitmapData.draw(myBitmap); var mySprite:Sprite = new Sprite(); mySprite.graphics.beginBitmapFill(myBitmapData); mySprite.graphics.drawRoundRect(210, 210 , 240, 240, 100, 100); mySprite.graphics.drawCircle(330, 330, 90); mySprite.graphics.drawCircle(330, 330, 70); addChild(mySprite); } } } |