おはようございます、きんくまです。って、まだ寝てないだけなんですが、、。
今日やってたスターウォーズのAP3ですが、録画している最中に嫁がパソコンを使用して、最後の肝心なところが落ちてしまいました。、、、いや映画館で見たからいいんだけどさ、あの火山の場面とマスクかぶせる場面は見たかったな、、。
さて、Nextです。
あれから、また時間があいちゃったんすが、サイトをみてみたら拡張機能のことが追記してあった!
ありがとうひだちのいろさん。
いろいろとやってみたので、とりあえず動くものをソースと一緒に書きます。
※メモ
ときどきeventのあとの処理で「強制型変換に失敗しました。ObjectなんたらをFunctionに変換できません。」とかでてきたら、function(o:Object){}とか引数の型をObjectにしたらエラーがでなくなった。
あと、tweensyとかをはじめにやろうとするとエラーが出るのも、time(1)とかをくみこんでやったら出なくなった。
ボタンの2を押したあと、4を押すタイミングで行動を振り分け。
全ての処理が終了後、また2の入力受付状態になります。
■ソース
package { import com.flashdynamix.motion.Tweensy; import com.flashdynamix.motion.TweensyTimeline; import fl.motion.easing.Circular; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.utils.Timer; import org.libspark.next.ITrigger; import org.libspark.next.Next; import org.libspark.next.N; import org.libspark.next.Trigger; public class Main extends MovieClip { public var mc1:MovieClip; public var mc2:MovieClip; public var mc3:MovieClip; public var mc4:MovieClip; private var tw:TweensyTimeline; public function Main() { loop(); } public function loop():void { //オリジナル関数を登録 Next.register("mytween", mytween); Next.register("mytween2", mytween2); //2をおしたら開始 setMouseCursor(mc2, true); var n:Next = N.event(mc2, MouseEvent.CLICK); //カーソル変更 n.func(function() { setMouseCursor(mc2, false); setMouseCursor(mc4, true); }); //mytween2がおわるか、mc4を押すか n.or([ N.time(1).mytween2(), N.event(mc4, MouseEvent.CLICK) ]); //結果によってふりわけ //戻り値によってはFunctionなんたらの型変換エラーが出るので //Objectにしておくと楽 n.func(function(o:Object) { setMouseCursor(mc4, false); if (o is String) { trace(o + " Next!"); } else if(o is MouseEvent) { var mc:MovieClip = o.target as MovieClip; trace(mc.name); //mytween2が終わる前にmc4をおしたらmc3を戻す tw.yoyo(); var n2:Next = N.time(1).mytween(mc1, { x:Math.random() * stage.stageWidth, y:Math.random() * stage.stageHeight }, Circular.easeIn); n2.start(); } }); //全部終わったらもう一回受付まち n.func(function() { loop(); }) //処理開始 n.start(); } private function setMouseCursor(target:MovieClip, isSet:Boolean):void { target.useHandCursor = target.buttonMode = isSet; } private function mytween(target:MovieClip, params:Object, easing:*):ITrigger { var t:Trigger = new Trigger(); var tw:TweensyTimeline = Tweensy.to(target, params, 0.8, easing); tw.onComplete = function() { t.call("complete"); } return t; } private function mytween2():ITrigger { var t:Trigger = new Trigger(); if(tw != null) Tweensy.remove(tw); tw = Tweensy.to(mc3, { x:Math.random() * stage.stageWidth, y:Math.random() * stage.stageHeight }, 5, Circular.easeOut); tw.onComplete = function():void { t.call("hello"); } return t; } } }
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ