Monthly Archives: February 2008

ActionScript3で、TrueTypeフォントを外部swfにして動的に呼び出す

TTFをswfに埋め込む方法はmx:Styleなどを使えば簡単なのだが、例えば100種類フォントを使おうとするとひどく重いswfが出来上がってしまう。必要なフォントだけ動的にHTTP越しに取得できないかやってみた。 環境はFlex3。結果的に成功しましたが、ずいぶんややこしい実装になってしまいました。もっと簡単にやる方法があったら教えてくださいー。ActionScriptをいじるのは初めてなので思わぬ盲点がありそう。。 コードはcodereposに上げました。BSDライセンスで。 http://coderepos.org/share/browser/lang/actionscript/misc/myfont/trunk svn checkout http://svn.coderepos.org/share/lang/actionscript/misc/myfont myfont ■ AS3で埋め込みフォントを使ってみる 出発点になったのが上記のページ。これだとswfをコンパイルしたときにTTFが埋め込まれ(TTF分のファイルサイズがswfに加わる)1つのフォントに1つクラスが出来上がる。100個作れば100のクラス名があるわけだが、まずそもそも任意のクラスをnewする方法がわからなかった。PHPだとこんな感じで複数あるクラスの中から1つをnewするのは簡単。 $className = ‘anythingOK’; $c = new $className; AS3では惜しいところまでいったのだが、コンパイルは通っても実行されない。下記のコメントアウトした方だとうまくいったがこれだとソースにハードコーディングせざるをえず、MyFontLabelの部分を動的に変えられない。 var classRef:Class = getDefinitionByName(“MyFontLabel”) as Class; var myFont:Object = new classRef(“hogehoge”, 20); //var myFont:Object = new classRef(“hogehoge”, 20) as MyFontLabel; さらにもう1つ問題がある。外部swfにしたいクラスのメソッドを呼び出すコードが、親swfにあると、コンパイルしたときに外部swfのファイルサイズが親swfに加わってしまう。 基礎講座 SWFLoaderコントロール がソースも見れてわかりやすい。 具体的にはここ。 LoadSWF(loadedSM.application).setInputData(input.text); http://www.ebizsolution.jp/column/flex/src/SWFLoaderTest2.html このsetInputDataはSWFLoaderで外部swfにしたクラス内に実装があるわけだが、コンパイル時に外部swfのasファイルが必須であり、呼び出し元のswfのファイルサイズが増えてしまう。フォントのように重いと外部swfにする意味がない。 八方塞がりかとも思われたが、同じソースの中の loadedSM.application["indata"].text = input.text; としている箇所は、コンパイル時にasファイルを要求されず、呼び出し元のswfのファイルサイズはそのままでいけた。出来上がったものも、これを使っている。 この辺り、僕が勘違いしているだけのような気もします。解決策ありそう。 ■ さてここからはcodereposに上げたソースを元に。 [...]

Posted in いじる | 2 Comments

PHPでSQLiteに書き込もうとしてGeneral error: 14 unable to open database file が出たときの対処

PHP5.2.5でPDOからSQLiteに普通にINSERTしようとしたとき、 Warning: SQLSTATE[HY000]: General error: 14 unable to open database file … とエラーが出て困った。SELECTは問題なくできる。 SQLiteのファイルのパーミッションが644だったりすると Warning: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database というエラーが出るのだが、666にしてあったのでこれではない。 結論としては、SQLiteのファイルを置いたディレクトリに書き込み権限が必要だった。(apacheの実行ユーザとかの) 下記のページを見て解決したのだが特にバグ、というわけでもないらしい。 [sqlite] Problems with SQLite and PHP Re: [sqlite] Problems with SQLite and PHP SQLite needs to be able to create and delete a journal file during database [...]

Posted in いじる | 1 Comment

Page optimized by WP Minify WordPress Plugin