忍者ブログ
ADMINNEW ENTRY
C A L E N D A R
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

HP→http://sora-blue.net/~kuar/index.html
No.373 No.372 No.371 No.370 No.369 No.368 No.367 No.366 No.365 No.364 No.363
2024-03-19(Tue)
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2009-03-25(Wed)
挫けた。
それはもういろいろと。

GDI+による超簡単なpngの表示方法のサンプルがあったがhが存在しなくて弾かれた。
hの入れ方をググってどこから手に入れるかまではわかったがどこにあるのかわかんなくて挫けた。

libpngを再度頑張ったが結果が同じで挫けた。

Javaに逃げるお( ^ω^)

透明になっている部分に関しては特にイベントは発生しないらしい(?)。
つまりリペイント処理をしようが一切影響が無い。再描画できず。
2つの透過png:画像Aと画像Bがあったとして画像Aのほうがでかいとして

画像Aを出したあと画像Bを出した場合、画像Aの部分が残る。

こんな感じで。下のようになるのが正しい。



単にリペイント処理が行われていないだけなのでリペイントさせるように背景を一時的に塗りつぶして再び背景を透過させてやればいい。
時計のスレッドを利用しているので大体2秒ほど残念なことになるが別途スレッドを用意してintervalを狭めてやればマシにはなる。
ソース(java)
時計処理はbootcampによる時差修正のため。

this.setAlwaysOnTop(true);の場合、spacesが認識してくれないらしく窓の移動ができないようなのでドラッグをしている間this.setAlwaysOnTop(false);にして認識させ窓移動ができるように試みたがなぜかできない。
System.out.println();でデバッグしてドラッグしている時にfalseになっていることも確認済み。
なんで動かないんだ。


spacesってのはデスクトップ拡張アプリケーションみたいなもの。


見ての通り画面が4つある。これはアナログ的に考えて画面がまんま4つあると考えていい。
左上がブラウザ用のウィンドウ、右上がphoto用、左下がプログラミング専用窓・・と言ったように専用の画面を自分でわけることができたりする。
メモリが許す限りこの画面は増やすことが可能。この画面はショートカットキー1つで切り替えできる。

どこにやったか一目でわかる機能付き。左上のウィンドウにはブラウザとメモ帳と2ch専用ブラウザが立ち上がっているようだ。

PR



・C O M M E N T
  • この記事へのコメント投稿フォームです。


  • Name:
    Title:
    Mail:
    Url:
    Color:
    Decoration:
    Vodafone絵文字 i-mode絵文字 Ezweb絵文字
    Message:
    Pass:
    ※編集時に必要です。

    ・無題
    >2秒ほど残念
    『画像の読み込み』と『背景の透過』が別タイミングで行われるのが原因なら、いっそ
    それらを同時に実行する関数を制定して、タイマーはそれを呼び出す、っていう仕組みに
    しちまえば楽なんでね?読み込まれるべき画像に変化がなければ単にreturnするだけとか。
    あるいはおいらならCharacterとかそんな名前のクラス作っちまってその中に実装するね

    class Character extends Layer{
     var filename; // クラスが把握している『自分が読み込むべき画像ファイル名』

     // このクラスオブジェが作られた時に呼ばれる関数
     function Character(win, par){
      super.layer(win,par); // win,par についてはとりあえずホットケ
     }

     // 画像ファイル名の指定
     function setFileName(name){
      this.filename = name;
     }

     // 画像読み込みと背景透過
     function setPaint(){
      this.fillRect(0, 0, this.width, this.height, 0x00000000); // 吉里吉里での塗りつぶし関数
      this.loadImages(filename); // 吉里吉里での画像ファイル読み込み関数
     }
    }

    var Misaka = new Character();
     Misaka.setFileName("misaka.png");
     Misaka.setPaint(); // ここで背景透過して画像読み込み

    こんなブツ仕込んでクラスの中で処理完結させちまうと余計なこと考えなくて済むよの
    あくまで吉里吉里の話(そもそも吉里吉里はその辺の処理考える必要自体無いけど)だがねー

    TRACKBACK
    • この記事のURLとトラックバックURLです。
    • 必要に応じてご使用くださいませ。
    この記事のURL▽
    この記事のトラックバックURL▽
    No.373 No.372 No.371 No.370 No.369 No.368 No.367 No.366 No.365 No.364 No.363

    Powered by NinjaBlog. Template by うさねこ.
    忍者ブログ[PR]