Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Katsushi Suzuki
PDF, PPTX
643 views
Flashup 8
無料のFlash講座、Flashup第8回の資料。 http://orange-suzuki.com/blog/2011/06/flashup8_report/
Technology
◦
Business
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 50
2
/ 50
3
/ 50
4
/ 50
5
/ 50
6
/ 50
7
/ 50
8
/ 50
9
/ 50
10
/ 50
11
/ 50
12
/ 50
13
/ 50
14
/ 50
15
/ 50
16
/ 50
17
/ 50
18
/ 50
19
/ 50
20
/ 50
21
/ 50
22
/ 50
23
/ 50
24
/ 50
25
/ 50
26
/ 50
27
/ 50
28
/ 50
29
/ 50
30
/ 50
31
/ 50
32
/ 50
33
/ 50
34
/ 50
35
/ 50
36
/ 50
37
/ 50
38
/ 50
39
/ 50
40
/ 50
41
/ 50
42
/ 50
43
/ 50
44
/ 50
45
/ 50
46
/ 50
47
/ 50
48
/ 50
49
/ 50
50
/ 50
More Related Content
PDF
Extending the Unity Editor Extended
by
Masamitsu Ishikawa
PDF
Extending the Unity Editor
by
Masamitsu Ishikawa
PDF
GTMF 2015: Autodesk Maya;大人気!カスタム・グラフエディタと便利ツールをPythonで!! | ダイキン工業株式会社
by
Game Tools & Middleware Forum
PDF
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
by
Ryota Shiroguchi
PDF
Movable TypeのWebアプリケーションフレームワークの基本
by
Hajime Fujimoto
PDF
Titanium勉強会
by
洋平 前田
PDF
知って得するUnity エディタ拡張編
by
Shota Baba
PPT
Impacto do fifa 2010 em áfrica
by
Nuno Tasso de Figueiredo
Extending the Unity Editor Extended
by
Masamitsu Ishikawa
Extending the Unity Editor
by
Masamitsu Ishikawa
GTMF 2015: Autodesk Maya;大人気!カスタム・グラフエディタと便利ツールをPythonで!! | ダイキン工業株式会社
by
Game Tools & Middleware Forum
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
by
Ryota Shiroguchi
Movable TypeのWebアプリケーションフレームワークの基本
by
Hajime Fujimoto
Titanium勉強会
by
洋平 前田
知って得するUnity エディタ拡張編
by
Shota Baba
Impacto do fifa 2010 em áfrica
by
Nuno Tasso de Figueiredo
Viewers also liked
PPTX
Parques de la italia
by
jennyluc
PPTX
Apresentação interbase (atualização 2)
by
Elen Arantza
PPSX
Producción
by
Stalin Dagoberto Suárez
DOC
Plano de acção
by
gracabib
PPTX
Trabalho de Sistemas para internet
by
si03grupo1
PDF
Soltralec Cálculo de Centros de Transformación
by
Virilito
PPTX
Ventajas del telefono galaxy
by
ROCHASA3
PPTX
Blogger
by
erickathy
PDF
As eras da informação hsm
by
marcioand
PPT
Impiii
by
Nuno Tasso de Figueiredo
DOCX
Evidencia061
by
marcelasena1
DOCX
Evidencia042
by
marcelasena1
PDF
Compuertas logicas
by
Ulises Ruinervo
DOC
Guía de trabajo convivencia y paz
by
Biviana Quiroga
PPT
Ordenalandia
by
ijurraesperanza
DOCX
Facheme
by
vianheyyy
PDF
Introducion a la economia
by
catalan21
ODP
Slide sol
by
Jean Douglas Reis
ODP
Tema 6 actividades páginas web
by
Gloria Quiles Garcia
ODP
El reciclaje
by
AndreayJulia
Parques de la italia
by
jennyluc
Apresentação interbase (atualização 2)
by
Elen Arantza
Producción
by
Stalin Dagoberto Suárez
Plano de acção
by
gracabib
Trabalho de Sistemas para internet
by
si03grupo1
Soltralec Cálculo de Centros de Transformación
by
Virilito
Ventajas del telefono galaxy
by
ROCHASA3
Blogger
by
erickathy
As eras da informação hsm
by
marcioand
Impiii
by
Nuno Tasso de Figueiredo
Evidencia061
by
marcelasena1
Evidencia042
by
marcelasena1
Compuertas logicas
by
Ulises Ruinervo
Guía de trabajo convivencia y paz
by
Biviana Quiroga
Ordenalandia
by
ijurraesperanza
Facheme
by
vianheyyy
Introducion a la economia
by
catalan21
Slide sol
by
Jean Douglas Reis
Tema 6 actividades páginas web
by
Gloria Quiles Garcia
El reciclaje
by
AndreayJulia
Similar to Flashup 8
PDF
Ssaw08 1014
by
Atsushi Tadokoro
PDF
Flashup 12 Basic Training of Away3D
by
Katsushi Suzuki
PPTX
Silverlightの今
by
信之 岩永
PDF
Flashup 9
by
Katsushi Suzuki
PDF
openFrameworks Workshop in Kanazawa v001
by
Teruaki Tsubokura
PDF
Fxug
by
satoshi
PPTX
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
by
Tomoaki Shimizu
PDF
WPFことはじめ
by
Hiroshi Maekawa
PPT
Flash Builder4 と FlashCatalyst を使ってみた
by
guest0ba46c3
PDF
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
PDF
Flashup 11
by
Katsushi Suzuki
PDF
MEETUPS ROUND 01 on 20110611
by
akabana
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PDF
Canvas勉強会
by
Tsutomu Kawamura
PDF
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
by
youten (ようてん)
PPTX
ドッターのためのプログラミングなにそれおいしいの
by
manaten
PDF
ドッターのためのプログラミングなにそれおいしいの
by
heriet
PDF
JavaFX 2.0 への誘い
by
Yuichi Sakuraba
PDF
Iron rubyとsilverlightとゲームと
by
kumaryu
PDF
何が変わった JavaFX 2.0
by
Yuichi Sakuraba
Ssaw08 1014
by
Atsushi Tadokoro
Flashup 12 Basic Training of Away3D
by
Katsushi Suzuki
Silverlightの今
by
信之 岩永
Flashup 9
by
Katsushi Suzuki
openFrameworks Workshop in Kanazawa v001
by
Teruaki Tsubokura
Fxug
by
satoshi
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
by
Tomoaki Shimizu
WPFことはじめ
by
Hiroshi Maekawa
Flash Builder4 と FlashCatalyst を使ってみた
by
guest0ba46c3
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
Flashup 11
by
Katsushi Suzuki
MEETUPS ROUND 01 on 20110611
by
akabana
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
Canvas勉強会
by
Tsutomu Kawamura
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
by
youten (ようてん)
ドッターのためのプログラミングなにそれおいしいの
by
manaten
ドッターのためのプログラミングなにそれおいしいの
by
heriet
JavaFX 2.0 への誘い
by
Yuichi Sakuraba
Iron rubyとsilverlightとゲームと
by
kumaryu
何が変わった JavaFX 2.0
by
Yuichi Sakuraba
Flashup 8
1.
「壁紙メーカーを作ってみよう FileReference入門」 2011.6.19(土) 特別協賛:ラフサウンド株式会社様
FLASHUP#8 orange-suzuki.com 鈴木克史 1
2.
本日のメニュー orange-suzuki.com
2
3.
1.
ボタンの作成、FileReferenceの解説など 2. サンプルの解説(壁紙メーカーの作成) ※コードはFlashDevelopをベースに記載しています。 3
4.
画像を配置してみよう orange-suzuki.com
4
5.
画像を配置するには? //画像を用意する [Embed(source = "asset/penguin01.png")] var
penguin01_img:Class; //Bitmapの作成 var img:Bitmap = new penguin01_img(); //表示させる addChild(img); 5
6.
ボタンを作成してみよう orange-suzuki.com
6
7.
ボタンを作成するには? //ボタン用画像の作成 var img:Bitmap =
new penguin01_img(); //ボタン用のSpriteを作成する btn = new Sprite(); //表示する btn.addChild(img); addChild(btn); //マウスを載せたときにマウスカーソルを指先カーソルに変更する btn.buttonMode = true; //クリックベントを追加する btn.addEventListener(MouseEvent.CLICK, btn_clickHandler); function btn_clickHandler(event:MouseEvent):void { //クリックしたときの処理を書く } 7
8.
サズを変更してみよう orange-suzuki.com
8
9.
ボタンのサズを変更するには? //ボタンのサズを2倍にする btn.scaleX = 2; btn.scaleY
= 2; //ボタンのサズを0.5倍(半分)にする btn.scaleX = 0.5; btn.scaleY = 0.5; 9
10.
ドラッグさせてみよう orange-suzuki.com
10
11.
ボタンをドラッグさせるには? //マウスダウンベントを追加 btn.addEventListener(MouseEvent.MOUSE_DOWN, btn_mouseDownHandler); //マウスダウンしたときの処理 function btn_mouseDownHandler(event:MouseEvent):void
{ //マウスゕップベントを追加 stage.addEventListener(MouseEvent.MOUSE_UP, btn_mouseUpHandler); //ドラッグ開始 btn.startDrag(); } //マウスゕップしたときの処理 function btn_mouseUpHandler(event:MouseEvent):void { //マウスゕップベントを削除 stage.removeEventListener(MouseEvent.MOUSE_UP, btn_mouseUpHandler); //ドラッグ終了 btn.stopDrag(); } 11
12.
ウゖンドウリサズ時の処理 orange-suzuki.com
12
13.
ウゖンドウリサズ時の処理を加えるには? //リサズベント追加する stage.scaleMode = "noScale";
//伸縮モードを拡縮なしにする stage.align = "TL"; //左上を固定する stage.addEventListener(Event.RESIZE, stage_resizeHandler); function stage_resizeHandler(event:Event):void { //リサズ時の処理を書くところ } 13
14.
ローカルPCからの画像選択 orange-suzuki.com
14
15.
FileReferenceを使った画像の読み込み その1 //FileReferenceのンスタンスを作成する file =
new FileReference(); //フゔルを選択したときの処理 file.addEventListener(Event.SELECT, file_selectHandler); //フゔルの読み込みが完了したときの処理 file.addEventListener(Event.COMPLETE, file_completeHandler); //選択するフゔルを限定するためのフゖルター ("フゔルの種類", "拡張子") var filter:FileFilter = new FileFilter("画像フゔル", "*.jpg;*.jpeg;*.gif;*.png"); //フゔル選択ウゖンドウを表示する file.browse([filter]); 15
16.
FileReferenceを使った画像の読み込み その2 //フゔルを選択したときの処理 function file_selectHandler(e:Event):void{
file.load(); } //フゔルの読み込みが完了したときの処理 function file_completeHandler(event:Event):void { //Loaderを作成する loader = new Loader(); //フゔルからデータを抽出する loader.loadBytes(file.data); //読み込んだフゔルの解析が完了したときの処理 loader.contentLoaderInfo.addEventListener(Event.INIT, loader_initHandler); } //読み込んだフゔルの解析が完了したときの処理 function loader_initHandler(event:Event):void { addChild(loader.content); //表示に追加する } 16
17.
ローカルPCへの画像出力 orange-suzuki.com
17
18.
FileReferenceを使った画像の出力 //BitmapDataを作成する var bmd:BitmapData =
new BitmapData(this.width, this.height); //BitmapDataに画面を描画する bmd.draw(this); //エンコーダを作成 var encoder:JPGEncoder = new JPGEncoder(90); //ByteArrayにエンコードする var byteArray:ByteArray = encoder.encode(bmd); //フゔルに保存する var file:FileReference = new FileReference(); file.save(byteArray, "test.jpg"); ※JPGEncoderが必要です。 https://github.com/mikechambers/as3corelib 18
19.
作例の解説 orange-suzuki.com
19
20.
壁紙メーカーを作ってみよう。 orange-suzuki.com
20
21.
どんなゕプリ? ローカルPCにある画像を使って、新しく画像を 生成するゕプリです。 1. フゔルの読み込み機能 2.
フゔルの書き出し機能 3. 画像をドラッグして位置を変更できる機能 4. 画像の大きさを変更できる機能 その他 • ゕプリの背景を画像で敷き詰める • フッターにタトルを入れる 21
22.
各クラスについて
表示系のクラス 管理系のクラス BackGround.as(背景) ・Manager.as (ゕプリを管理する) Previewer.as(プレビュー) ユーテゖリテゖ系のクラス ・FileSelecter.as (ローカルPCの画像を選択する) ・FileSaver.as Menu.as(メニュー) (ローカルPCへ画像を保存する) Footer.as(フッター) ドキュメントクラス Main.as orange-suzuki.com 22
23.
各クラス間のメージ
・BackGround.as(背景) 機能を実行 実際の動作 ・FileSelecter.as ・Menu.as(メニュー) ・Manager.as (画像を選択) (ゕプリを管理する) ・Previewer.as(プレビュー) ・FileSaver.as (画像を保存) ・Footer.as(フッター) 結果を通知 結果を通知 Viewの生成 ・Main.as (ドキュメントクラス) orange-suzuki.com 23
24.
各クラスの解説 orange-suzuki.com
24
25.
ドキュメントクラス orange-suzuki.com
25
26.
ドキュメントクラス(Main.as) その1 //表示オブジェクトを生成 bg =
new BackGround(); menu = new MenuEx(); previewer = new ResizableMultiDraggablePreviewer(); footer = new Footer(); //画面に表示させる addChild(bg); addChild(menu); addChild(footer); addChild(previewer); 26
27.
ドキュメントクラス(Main.as) その2 //リサズ時のベントを登録 stage.addEventListener(Event.RESIZE, stage_resizeHandler); //一旦リサズ処理をかける resize(); //リサズ処理(それぞれの見た目をリサズさせる) function
resize():void{ var sw:Number = stage.stageWidth; var sh:Number = stage.stageHeight; bg.resize(sw, sh); menu.resize(sw, sh); footer.resize(sw, sh); previewer.resize(sw, sh); } //リサズ時のベントハンドラ(それぞれの見た目をリサズさせる) function stage_resizeHandler(event:Event):void { resize(); } 27
28.
管理用クラス orange-suzuki.com
28
29.
管理用クラス(Manager.as) その1 シングルトンという機構を利用しています。 //ンスタンスの取得方法 Manager.instance; //他クラスの使用方法 Manager.instance.関数名() Manager.instance.プロパテゖ名() //ンスタンスを返す関数 public static
function get instance():Manager{ if(!Manager._instance)Manager._instance = new Manager(new SingletonEnforcer()); return Manager._instance; } 29
30.
管理用クラス(Manager.as) その2 主な機能 //フゔルの読み込み public function
loadFile():void{ //フゔルを選択するツール(FileSelecter) var selecter:FileSelecter = new FileSelecter(); //画像選択時の処理を加える selecter.addEventListener(FileSelecter.SELECT_COMPLETE, selecter_selectCompleteHandler); //実行する selecter.excute(); } //フゔルの書き出し public function saveFile():void{ //フゔルを出力するツール(FileSaver) var saver:FileSaver = new FileSaver(); //画像出力時の処理を加える saver.addEventListener(FileSaver.SAVE_COMPLETE, saver_saveCompleteHandler); //ツールの設定をする saver.width = 640; saver.height = 480; saver.source = _previewer; //実行する saver.excute("wallpaper.jpg"); } 30
31.
背景 orange-suzuki.com
31
32.
画像を敷き詰めるには?(BackGround.as) //リサズ時に行われる処理 function resize(w:Number, h:Number):void{
fill(w, h); } //画像で敷き詰める function fill( w:Number, h:Number ):void{ //graphicsプロパテゖを取得 var g:Graphics = this.graphics; //グラフゖックを一旦消去する g.clear(); //bitmapdataで塗る g.beginBitmapFill( bitmapdata, null, true, false ); //四角形を描く g.drawRect(0, 0, w, h); //塗を終了する g.endFill(); } 32
33.
メニュー orange-suzuki.com
33
34.
メニュー その1(Menu.as)
1. ボタンによって処理を振り分ける 2. 管理用クラスの関数を実行する orange-suzuki.com 34
35.
メニュー その2(Menu.as) function mouseDownHandler(event:MouseEvent):void {
//ボタンによって処理を振り分ける //menu1の場合 if (event.target == menu1) { //管理用クラスの関数を実行 Manager.instance.loadFile(); } //menu2の場合 if (event.target == menu2) { //管理用クラスの関数を実行 Manager.instance.saveFile(); } } 35
36.
スラダー付きメニュー orange-suzuki.com
36
37.
スラダー付きメニュー その1 (MenuEx.as)
1. メニューを拡張し、スラダーを追加する 2. 管理用クラスからの通知を受け取る ゕテムが選択されると、スラダーの値を変更する 3. 管理用クラスを通してサズの変更を通知する スラダーの値を変更するとゕテムのサズを変更させる orange-suzuki.com 37
38.
スラダー付きメニュー その2 (MenuEx.as) ベントに引数を渡す(カスタムベントの作成) //カスタムベントの作成 var
customEvent:CustomEvent = new CustomEvent(“ベント名”); //ベントに引数を渡す customEvent.data.プロパテゖ名 = 値; //ベントを発行 dispatchEvent(customEvent); //カスタムベントのベントハンドラ function eventHandler(event:CustomEvent):void { //値を取得する var value:Number = event.data.プロパテゖ名 } ※CustomEvent:ベントを拡張したクラス com.orangesuzuki.eventsパッケージにあります。 38
39.
スラダー付きメニュー その3 (MenuEx.as) //管理用クラスからの通知を受け取る //ゕテムが選択されたときのベントを登録 Manager.instance.addEventListener(Manager.SELECT_OBJECT,
manager_selectObjectHandler); //ゕテムが選択されたときのベントハンドラ function manager_selectObjectHandler(event:CustomEvent):void { //ゕテムの大きさをスラダーの値に反映する slider.value = event.data.scale*100; } 39
40.
スラダー付きメニュー その4 (MenuEx.as) //スラダーの生成 slider
= new HSlider(200, 10, 100, 0, 100, false); //スラダーの値が変更された時のベントを受け取る slider.addEventListener("onChange", sider_onChangeHandler); //スラダーの値が変更されたときのベントハンドラ function sider_onChangeHandler(event:Event):void { //スラダーの値と0.1の大きい方を選ぶ var scale:Number = Math.max(slider.ratio, 0.1); //管理用クラスからサズ変更を通知する var customEvent:CustomEvent = new CustomEvent(Manager.CHANGE_SIZE); customEvent.data.scale = scale; Manager.instance.dispatchEvent(customEvent); } 40
41.
プレビューワー orange-suzuki.com
41
42.
プレビューワー
基本クラスを拡張し、各機能を追加する orange-suzuki.com 42
43.
プレビューワーの拡張
シンプルなプレビューワー → Previewer.as ドラッグ可能にする → DraggablePreviewer.as 独立してドラッグ可能にする → MultiDraggablePreviewer.as リサズを可能にする → ResizableMultiDraggablePreviewer.as 43
44.
シンプルなプレビューワー (Previewer.as) //フゔルに書き出す対象を設定する //ゕプリを管理するクラスManagerに対して、自身を登録する Manager.instance.previewer = this; //フゔルの読み込みが完了した場合の処理を加える //管理用クラスからの結果を受け取る Manager.instance.addEventListener(Manager.LOAD_COMPLETE,
manager_loadCompleteHandler); //フゔルの読み込みが完了したときのベントハンドラ function manager_loadCompleteHandler(event:Event):void { addImage(); } //選択したフゔルを表示させる function addImage():void{ canvas.addChild(Manager.instance.selectBitmap); } 44
45.
ドラッグ可能なプレビューワー その1 (DraggablePreviewer.as) //キャンバスを新たに作成する canvas =
addChild(new Sprite()) as Sprite; canvas.x = canvas.y = 4; //選択したフゔルを表示させる override protected function addImage():void { //選択したビットマップを一旦変数に格納 var bmp:Bitmap = Manager.instance.selectBitmap; //ドラッグ用のSpriteを作成する dragItem = new Sprite(); //表示に追加 dragItem.addChild(bmp); canvas.addChild(dragItem); } 45
46.
ドラッグ可能なプレビューワー その2 (DraggablePreviewer.as) //マウスダウンベントを登録する canvas.addEventListener(MouseEvent.MOUSE_DOWN, canvas_mouseDownHandler); //キャンバスのマウスダウンベントハンドラ function
canvas_mouseDownHandler(event:MouseEvent):void { startFollow(); } //ステージのマウスゕップベントハンドラ function stage_mouseUpHandler(event:MouseEvent):void { stopFollow(); } //ドラッグ開始 function startFollow():void{ //マウスゕップベントを登録 stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler); dragItem.startDrag(); //ゕテムのドラッグ開始 } //ドラッグ終了 function stopFollow():void{ //マウスゕップベントを削除 stage.removeEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler); dragItem.stopDrag(); //ゕテムのドラッグ終了 } 46
47.
独立してドラッグ可能なプレビューワー (MultiDraggablePreviewer.as) /** * キャンバスのマウスダウンベントハンドラ
*/ function canvas_mouseDownHandler(event:MouseEvent):void { //ドラッグするゕテムを設定する dragItem = event.target as Sprite; //ドラッグするゕテムを手前に持ってくる canvas.addChild(dragItem); startFollow(); } 47
48.
リサズが可能なプレビューワー その1 (ResizableMultiDraggablePreviewer.as) //管理用クラスからベントを受け取る
//スラダーの値が変更されたときのベントを登録 Manager.instance.addEventListener(Manager.CHANGE_SIZE, manager_changeSizeHandler); //スラダーの値が変更されたときのベントハンドラ function manager_changeSizeHandler(event:CustomEvent):void { //選択ゕテムの大きさを変更する if (dragItem) { var scale:Number = event.data.scale; dragItem.scaleX = scale; dragItem.scaleY = scale; } } 48
49.
リサズが可能なプレビューワー その2 (ResizableMultiDraggablePreviewer.as) /**
* スラダーの値を現在の選択オブジェクトのスケールにする */ function setSliderRatio():void{ //管理用クラスを通して、オブジェクトが選択されたことを通知する var customEvent:CustomEvent = new CustomEvent(Manager.SELECT_OBJECT); customEvent.data.scale = dragItem.scaleX; Manager.instance.dispatchEvent(customEvent); } 49
50.
おわり orange-suzuki.com
50
Download