タイムラインの1フレーム目にこれを書くと
AS3でいうドキュメントクラスと同じような感じで
Hogeクラスを扱うことができる。
タイムライン
import Hoge; this.__proto__ = Function(Hoge).prototype; Function(Hoge).apply(this,null);
タイムラインの1フレーム目にこれを書くと
AS3でいうドキュメントクラスと同じような感じで
Hogeクラスを扱うことができる。
タイムライン
import Hoge; this.__proto__ = Function(Hoge).prototype; Function(Hoge).apply(this,null);
汎用性の高いクラス作ったのは良いけど、
結局タイムラインベースにスクリプト書いちゃってるのでフレームが移動すると
また、importからやり直し、というのをよくやってしまいます。
あまりにもいろんなところでimportするクラスに関しては
めんどうなのでグローバル化してしまうことにしています。
import Hoge; _global.Hoge = Hoge
これでHogeクラスがどこでも使えるようになります。
UIコンポーネントにマスクを適用するときに
マスクレイヤーによる適用をするとラベルが消えてしまいます。
スクリプトのsetMaskによる適用なら問題ないらしいです。
知ってればほんと大したことないことなんですが
知らずに進めてて、後で修正ってなったときに偉いことになりそうなんで、とりあえず。
オープニングムービーがあるコンテンツは
2度目以降のアクセスに対してそのオープニングを自動的にスキップする仕様を求められることがよくあります。
最も一般的なのはクッキーだと思うのですが、
今回は以前にやったSharedObjectを利用してFlashだけでやりました。
class AccessChecker {
private static var _lso:Object = SharedObject.getLocal("accessChecker");
public static function chk(_num:Number):Boolean {
var num:Number = (_num == undefined) ? 24 : _num;
var lastTime:Number = _lso.data.lastTime;
lastTime = (lastTime == undefined) ? 0 : lastTime;
var dateObj:Date = new Date();
var nowTime:Number = Math.ceil(dateObj.getTime()/1000/3600);
var flag:Boolean;
if (nowTime-lastTime
chk関数を実行し、2回目以降のアクセスには引数の時間が経過するまでfalseを返します。
ついでなんで、引数無しの時は24時間にしておきました。
タイムラインには
var openingPlay:Boolean=AccessChecker.chk(12);
とかで、あとはopeningPlayを適当に扱ってあげます。
UIコンポーネントでまたまたトラブルです。
コンボボックスを配置したものを制作中、
それだけで書き出したら普通に動作するのに
別のSWFから読み込ませると動かなくなりました。
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.loadClip("combo.swf",container);
色々、調べたら特にComboBoxに限ったことではなく
UIコンポーネントのいくつかにこういった症状があるそうです。
解決方法はロードするムービークリップの_lockroot プロパティをtrueに。
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); container._lockroot = true; var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.loadClip("combo.swf",container);
動いてよかった。