Flex2.0やFlash9 public alphaを用い、
AS3.0のサービス開発も徐々に普及し始めています。 p>
日本では、6月下旬にAdobe CS3(日本語版)が発売されるとの事で、
ますますAS3.0が身近になりますね。
せっかくなので、暇を見つけてAS2.0との比較をつらつらと語ろうと思います。
今回は、特定階層の無効化について、気になった部分を挙げてみます。
今までAS2.0で画面全てのものを触れさせたく無い場合
以下のようなコードで比較的楽に無効化が可能でした。
/** AS2.0 触れさせたくない階層の最上位に無効化レイヤーを敷く */ function setInvalidLayer(layer:MovieClip):Void { var square:MovieClip = layer.createEmptyMovieClip("invalidLayer", layer.getNextHighestDepth()); square.beginFill(0x000000, 0); square.moveTo(0, 0); square.lineTo(Stage.width, 0); square.lineTo(Stage.width, Stage.height); square.lineTo(0, Stage.height); square.lineTo(0, 0); square.endFill(); square.onRollOver = function() {} square.useHandCursor = false; } setInvalidLayer(this);
ですが、AS3.0で記述すると更に楽に記述が可能です。
/** AS3.0 触れさせたくない階層の最上位に無効化レイヤーを敷く ※AS3.0のコンパイルには Adobe labs の Flash9 public alphaを利用しています。 */ import flash.display.Sprite; function setInvalidLayer(layer:Object):void { var square:Sprite = new Sprite(); square.graphics.beginFill(0x000000, 0); square.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); layer.addChild(square); } setInvalidLayer(this);
AS2.0と比較して楽と表現した点は以下です。
(1)ボタン化が不要(新規生成Object以下が触れれない)
(2)z軸の管理(depth)を明示しなくて良い(addChildの仕様で内部管理してくれる)
AS2.0とAS3.0、書き比べると面白いですね。ではまた!
_トラックバック(0)
TrackbackURL : http://level0.kayac.com/cgi-bin/mt/mt-tb.cgi/846
- AfterEffects
- AIR
- android
- Arduino
- AS2
- AS3
- as3
- BitmapData
- CHECKMATE
- crossdomain
- CS4
- Date
- DisplacementMapFilter
- Event
- event
- ExternalInterface
- FileReference
- FireBug
- FireFox
- Flash Lite
- FlashDevelop
- FlashPlayer10
- flash時計
- Flex
- Font
- GoogleMapsAPI
- INFINITY TANK BATTLE
- JSFL
- JSON
- Mobile
- mxp
- PaperVision3D
- Particle
- Progression
- Sound
- TextField
- Tips
- tool
- trace
- wonderfl
- Wonderfl
- xml
- アニメーション
- サンプルコード
- タイムライン
- デバッガ
- バグ
- フレーム
- ブログパーツ
- 爆速

(0)






_コメントする