Archive for category ActionScript

AS3 forとfor each

ACTIONSCRIPT:
  1. members:Array=new Array():
  2. members["A"] = "海";
  3. members["B"] = "山";
  4. members["C"] = "空";
  5.  
  6. for each(var item:String in members){
  7. trace(item);
  8. }
  9. //海
  10. //山;
  11. //空;
  12.  
  13.  
  14. for(var key:String in members){
  15. trace(key + "  "+ members[key]);
  16. }
  17. //A 海
  18. //B 山;
  19. //C 空;

for eachだと、keyが取れんみたい。

FlashDevelopとswcではまったこと

FLASH CS3で作成した、グラフィカルなMovieClipのインスタンスを使いたかったの
で、SWC経由に挑戦。
SWCをAdd To Libraryにしたのにみつからんと怒られ一日。
FlexBuilderで作成したプロジェクトなのが原因かとFlashDevelopでプロジェクトを
作り直し。
FlashIDEではなく、AS3のプロジェクトを作成。
FlashIDEはコンパイルにFLASHを利用するらしい。

うまくいった。今後は製作のはばが広がる!!

参考
http://level0.kayac.com/2009/11/swc.php

as3 Timerクラス

使い方テンプレ

ACTIONSCRIPT:
  1. //---読み込み
  2. import flash.utils.Timer;
  3. import flash.events.TimerEvent;
  4. import flash.events.*;
  5.  
  6. //---変数
  7. private var timeCounter:Timer;
  8.  
  9. //---実装部分
  10. timeDropCounter = new Timer(70);
  11. timeDropCounter.addEventListener(TimerEvent.TIMER,drop);
  12.  
  13. //---実行
  14. private function drop(e:TimerEvent):void{
  15.  
  16. }

as3 ダブルクリック

doubleClickEnabled
をtrueにする必要あり。

AS3でビットマップのコピー

BitmapDataでcloneしてBitmapにはりつければOK。
拡大縮小はMatrixを使う。

ACTIONSCRIPT:
  1. package{
  2. import flash.events.*;
  3. import flash.display.*;
  4. import flash.geom.*;
  5. import info.sunagimo.math.*;
  6. public class PageContent extends ExternalImageLoader{
  7. private var _stockBitmap:Bitmap;
  8. private var _smallBitmap:Bitmap;
  9. private var _sR:int = 2;
  10. public static const LOAD_COMPLETE:String="load complete";
  11. public function PageContent(s:Boolean = false){
  12. _setDefaultSmoothing(s);
  13. }
  14. public function setRotation(rad:Number):void{
  15. this.rotation = Mathmatics.degree(rad);
  16. }
  17. protected override function _onLoad(e:Event):void{
  18. _stockBitmap = Bitmap(_img.content);
  19. _makeSmallBitmap();
  20. dispatchEvent(new Event(LOAD_COMPLETE));
  21. }
  22. private function _makeSmallBitmap():void{
  23. var w:Number = 2030;
  24. var h:Number = 2700;
  25. var bmpData:BitmapData = _stockBitmap.bitmapData;
  26. _stockBitmap.smoothing = true;
  27. var cloned:BitmapData = bmpData.clone();
  28. var empty:BitmapData = new
  29. BitmapData(Math.floor(w/_sR),Math.floor(h/_sR));
  30. var mat:Matrix = new Matrix(); // Matrixのインスタン
  31. スを作成して、
  32. mat.scale(1/_sR, 1/_sR); // scaleを指定
  33. empty.draw(cloned, mat); // 第2引数でそれを提供
  34. _smallBitmap = new Bitmap(empty);
  35. _smallBitmap.smoothing = true;
  36. _smallBitmap.width=w;
  37. _smallBitmap.height=h;
  38. }
  39. public function attachSmall():void{
  40. if(numChildren>0){
  41. removeChildAt(0);
  42. }
  43. addChild(_smallBitmap);
  44. }
  45. public function attachLarge():void{
  46. //var w:Number = 2030;
  47. //var h:Number = 2700;
  48. //_stockBitmap.width=w;
  49. //_stockBitmap.height=h;
  50. if(numChildren>0){
  51. removeChildAt(0);
  52. }
  53. addChild(_stockBitmap);
  54. }
  55. }
  56. }

DisplayObjectの初期値

DisplayObjectの初期値もnull
if(_do != null){ }
で、チェックできる

AS3 Number型の初期値

NullとかundefinedはNumberには入らないらしい。
初期値はNaNだそうです。
if(n==NaN)
はだめなので、
if(isNaN(n))
で。

知らないことだらけ。