2010年2月24日水曜日

涙のAS3物語 第三話 コンパイルエラー クラスって何?

AS3のテキストを見ても鳥肌がたたなくなった私は、いよいよ元気を出して

http://www.flashdo.com/ とか、

http://www.flashcomponents.net/ でいろいろ買って加工しながら自分でいろいろ作ってみたいと!作るぞ!と。思えるようになりました。


日本語化もしてやるぞ!
と思いました!そして私はこれを買ってみました。

たった10ドルの仕入でお客さんに自慢できるものが手に入るのならラッキーである。
が、日本語が表示されない。で、メールで相談したら作りなおしてくれた。すごいいい人のようです。
flashdoさんを応援してあげよう! 日本と有効関係のあるトルコ人だよ~。トルコは男前だらけだよ~!

ディバイスフォントでもなく、埋込もしてないのにちゃんとどんなフォントでもXMLで表示されます。
便利すぎます。 ちょっと重いファイルになりますけど頑張ってみましょう。

これを解析するとなると大変ですな。

こういう買ったファイルは大抵外部ファイルにリンクする形になっています。ライブラリーを貼りつけたいライブラリーにまるごとコピペして、ドキュメントのプロパティのところでリンクさせるASのリンクを貼ります。

で、早速この買ってなおしてもらったファイルを自分で作ったAS3に貼りつけてみたらエラーがでます。

説明:1046: 型が見つからないか、コンパイル時定数ではありません。 : TextField。

つまり、これは

import flash.text.TextField;
を外部asに書き込まないといけないようです。

要するに私が作っているファイルの中のテキストが宣言されてないってこと?

まぁ。いろいろありますわぁ。 こつこつ経験して勉強していきますが、全部理解できるような予感だけで一生理解できない気もしております。




*************************
ホンマの入門はやっとわかった私ですが、いきなり人が作ったAS3の外部ファイルとかを開いてもチンプンカンプンです。
海外のこんなサイトを見つけました。 ビデオで解説してくれています。

この星をランダムに表示させる外部ファイルに書いたasの作り方は、なんとなくわかるけど根本的にはわからない。
これも受験勉強のようにとりあえず自分で書いてみたいものです(これもう仕事じゃないよな!)


外部ファイルの基本的な考え方はこっちのビデオがわかりやすいです。

その続き2(ええ人やなという感じ)

結局、私なんかは私が自分で書くことなんてほとんどなく、人の作ったのを買ったりもらったりして組み合わせて作のですが、AS3になるとやたらそれだとエラーになる。 これは、同じ名前のクラス宣言していたりするからだ。だから基本だけはわかってせめてクラス名の書き換えをしないといけない。外部のクラスファイルの名前は必ず大文字で、それと同じ名前のクラスを作るというのはとても参考になった。 外部クラスの基本的な考え方はわからないがテクニックはわかった。


2010年2月19日金曜日

WordからBlogger に投稿できるらしい

おじさま、というより普通のおじいさんにbloggerを教えているのですが、どうも文章をいきなりbloggerの小さい画面に書くという習慣がなじまないらしいです。wardで書いた文章をコピペするとなんかヘンになるときがあり、そのたびに編集してくださいと連絡があるので、イヤじゃないけど、なんとかならんかなぁと

で、wordに対応したプラグインとかないかしらと思っていたらありました!

すばらしい!

wordから発行というところを選び、それからidとパスワードを入力し、ブログを選んで発行するだけです。

イヤ本当に…いたれりつくせりですな。

2010年2月16日火曜日

AS3物語 第二話 if 条件分岐は発想の転換で


現代数学社さんというお客様がいるのですが、本を書かれている数学者にはフラッシュが趣味の方います。こんなん見たら鳥肌たちます!フラッシュって数学なのねと思わずにはいられません。
私は小さい頃より数学が苦手で自分の考え方に合わないととても悩み、さらにその考えに執着する癖のようなものがあります。そして、考え出したら止まらなくなるたぶんADHDです。妹も姉ちゃんは間違いないと言います。

最近、PHPを通じて私は、ちょっとだけ数学的な発想をお勉強しました。思うことは数学をもう少し好きで勉強していたら、私の発想力というのは、もうちょっと合理的で賢かったんじゃないでしょうか?ADHDももう少し訓練により改善したんじゃないでしょうか? 悔やまれてなりません。それも、これも父ちゃんが小学校1年生くらいのときに算数を教えてくれて()カッコの中を先に計算するというのをすっかり忘れて私に教えたくらいから始まっていたと思います。(私の一族親戚縁者探しても数学が得意という人は見たことないです)でも、本当にプログラムの勉強をしていて、数学楽しいかったんじゃないかな?と私は今思う。若い人よ頑張れと思います。

条件分岐を考えるときは、発想力だとつくづく思います。人生も発想の転換で好転するものです。人生半ばを過ぎ、これまで私は人生の条件分岐点に様々にぶち当たってまいりましたが、もう少し賢い選択が考え方によったらできたんじゃないだろうかと思い返して落ち込むことがあります。 せめて、あなたの人生が幸せでありますよう。あなたも困難にぶち当たっているのなら、少し考え方を変えてみてはどうでしょう。 と、いうわけで、ADHDの勢いで第二話を書きます。



Flash にも条件により処理の変更ができます。 第一話のファイルをクリックしたら色が薄くなって大きくなり、消えたら元にもどるという処理に変更してみました。

var mc : MovieClip = new Maru(); //ライブラリでリンケージ設定したMC();

this.addChild( mc );
this.mc.x=200;
this.mc.y=200;

mc.addEventListener( MouseEvent.CLICK, kansu );

//ここで関数設定をする。これもPHP風 private function とよくFlepさんのサンプルは書いてます。なんか、曖昧さはflashはもしかしたら相変わらず残っているのかも
function kansu(e){
if(mc.alpha>0){
mc.scaleX+=0.1;mc.alpha-=0.1;
trace( "クリックされました。" );}
else{mc.alpha=1;mc.scaleX=1}
}


if でmcのalphaが 0以上のときは大きくして薄くしてください。
そうでなければ初期値にもどす。

ということです。ここで消したのを出すとか発想するととっても難しいですが、薄くなったら色を濃くすると考えたら楽に解決できます。これはやはり練習問題をいろいろやって初めて発想できることでしょう(まさに受験勉強のようです)


if の文法はPHPと同じで、

if(条件式){その条件にあった処理}
else if(その他の条件){処理}
else {どれにも当てはまらい場合の処理}


という文法です。

また
for(var i=0; i<50 ;i++){処理}
というような、初期値i=0から 49まで1つづつ処理していくというような繰り返し処理もPHPでおなじみです。



数字の比較演算子は

== は同じ時 これをよく=だけにしてエラーになります。 if(mc.x==0) {trace("はしっこ");} とか書きます


>= 以上
<= 以下 < 未満 > より大きい


でPHPと同じです。


ところで、数学どオンチの私がなぜ多少なりともPHPはわかるようになったかといえば、
一番最初は10日でわかるとかいう薄い本をとりあえず一冊なんとか読みなんとなく理解し、そのあと、それを元にこんなものを作りたいという欲求から始まって
それはPHP proで数百円で質問し続けて理解できたのと、小さい本があったからです。


これがとっても便利です。なんせADHDなので、自分で納得しないとそこでフリーズするんです。
ですから、普通の人には理解できない回り道をしてしまいますが、その代わり理解が深いんです。

AS3にもこれに相当するスリムで座右の書となるようなものがあるといいんですが…


これとかよさげなんですが、3600円もするんだよ~ん。はぁ。発想の転換でアフェリエイトで稼ぎたいと思いますので、皆様応援よろしくお願いします。 なんかアマゾンは簡単にいらない本を販売できるシステムがありますね!便利=。わからんかった本とかキレイなうちに売ってしまいました!

それにしても、こういう本って買ってみないとわからないところがありますよねぇ。どんなに本を買ったことか。どっちかいうと本派でして…。 ま。セミナー行くことを思えば安いもんですよね
アクションスクリプトは確かに初心者には荷が重いと思いますので、最初にPHP勉強しておいたらいいと思います。PHPには初心者向けの楽しい本がたくさんあります。 で、フラッシュよりもPHPの方が使える場所が多いと思います。


まぁ。ここまで勉強したら、なんとなく他のものを見てもわかる感じがします。
回転するオブジェクト これはEvent.ENTER_FRAME というフレームに入った時にもうやっておけというものが理解できたらなんとなくわかる。 でも、どうしてこれで回転するかわからないけど。
voidという戻り値が理解できたらなんとなくわかる気もする。
もっと簡単に

function stepRotation(e) {
//box_mcを回転させる
bar.rotation += 2;
}

と書いてもOK!エラーも出ない。 用するに引数の戻り値がないときは(e)と書いたらいいみたいです。

ここまでせないかんか?って気もしますな。

回転をクリックで止めたり始めたりもできますが、これが始まっているものをクリックして、また再開させるというのを1時間くらい考えましたができませんでした。 止まったところの座標でもとらないといけないのかなぁ。 発想が出ませんでした。最初にもどるとかいう考え方がないのですかなぁ。




とりあえず、これでも買うかなぁ。AS2の本なんか山盛りあるんだけど。全部捨てよう。邪魔だから…

早くビデオプレイリストとか作れるようになりたいな~。時間がないんだよ本当に…
アドビの説明わからんすぎる。

平さんのシークレットサクセスを見てこのアプリいいなと思って調べた。
この人のエネジーの5分の1でも私にあったらなぁと思う。私は落ち込んでしまうのだよ。本当に…

アドビのこの膨大な説明をさくっと教えてくれる人だれかおらんやろか!見ただけでやる気なくす。
だいたアドビのサイトの作りが重い。人をよせつけない雰囲気を持っている。だからキライなんだ。高いお金で有料で教えて儲けるつもりなんだろうなぁと思ってしまいます。

よし!私が教えてあげられる人になろう!!と書いてみる。 成功する!ぞ!(平式で書いてみる)

はぁ。

第三話はこちらです…

超初心者 AS3物語 涙の第一話



平秀信のマインドセットによれば(不景気で気が弱っているので、無料の精神力アップ系のものを最近愛読)なんか、自らが教える立場になる前提で行え。ということでございます。

これから勉強したことを、ここにまとめてみたいと思います。(不景気+分からない過ぎてノイローゼ気味なので、ダラダラ書くから何かわからんかもしれんけど。)

私は、これからの時代、ホームページをやっていますという限りには、それなりにFlashは使えないと食べていけないと思っています(今はそうでもない?プログラムの方がいい?)。

で、まぁ。AS2を私はそれなりに真剣にお金もかけて勉強してきたのです。ところが2007年に嬉しそうにActionScript3になりました~と。発表され、その時のショックは、これまで一生懸命に作ってきたドミノを猫が走って崩されたようなショックでしたわ。
で、ちょっと軽い気持ちでトライアル版を入れてみて古いのを開いたら、あなたもう古いバージョンでは開けなかったりするのよ! 驚き~。 そしてその頃にパソコンのデータがぶっ飛びという事件が起こり、私は不幸のどん底に…。 その頃、ちなみに夫が海外で一山当てると行って帰ってこず、挙句に私のクレジットカードで生活するようなことも…。
そのうち私の不幸の日々を本にして出版したいと思います。

で、swishに浮気してみたり急ぎの仕事はそれで作り、ごまかしながらやってまいりました。
しかし、やはり、来るべき3D時代。おばさんがお婆さんになっても、そこそこは仕事をしてやるぞ(老後が心配)という思いから、やはりAS3をマスターしたい。 PHPもちょっとはわかるようになったんだし(CGIは未だにわかんないし、XMLも部分的にしかわからんけんども)

やるぞ。やるぞやってやる!と、秋葉秀樹先生の(先生だけど私よりかなり年下。アイドル系で可愛い。息子に欲しい感じ) イメディオの1日講座(前半)を1万7000円を握り締め行ったのでございます。 忙しいし交通費がもったいなくて車で行ってちょっと遅れて(イメディオは遠すぎる)

ちょっと贅沢だなと思ったのですが、え~い行ってやるぅ!と行ってしまいました。で、これはあくまでキッカケで、これから自分でコツコツ勉強していくのね。 という感じの講座だった。でも、これをキッカケに頑張ろうと思って帰ってきたのであります。

ところが(話はどんどんそれますが)、その後に、私がこういう時のためにこつこつと500円玉を貯金し、6万円ほど貯めていた貯金を夫がこっそりパチンコで使い込んでいたことが発覚! そんな泥棒が家にいたのかとショックを受け、こんなことだったら無理して講座なんか行くじゃなかった。とうつ病が発症し、ActionScript3は私をこんなにも苦しめる!と、完全にトラウマになり、すっかりやる気が消えていたのです。


今でも、秋葉先生の講座のレジメは大切にして持っていますが、読もうとしただけでPTSDというのでしょうか、心臓が苦しくなり、すっかり内容も忘れてしまいました。orz....


あれから半年、オリンピックの上村愛子の着実な進歩。でも表彰台には上がれなかった悔しさ。私は日曜日にテレビを見ながら考えました。一粒の涙が落ちました。表彰台には登れないかもしれない。
でも、私は、満足したい。やってよかったと泣きたい。私もこの山を登るんだ。 ActionScript3の存在を認めて許そう。 夫を許そう(しんどいけど)そして、ゆっくりと私の空っぽの心と頭は、やる気という水分を含み、中身はないなりに動きだしたのであります。


(以上、私の身の上話終わり)


本文はここからです!

で、たまたま見つけたDMでサードパーティーのFlash エクステンションにFlash Effというものがあり、これがAS3で、swish相当のカッチョいいのが作れることがわかりました。

で、時々勉強が始まったのであります。 

今日は、2ちゃんのwikiで勉強してみました。


ActionScriptのお勉強というのは、何と申しましょうか、いきなり無味乾燥でございます。
数字を足したものが表示されたからといって、いったいこれが私の将来の役に立つのでしょうかと思ってしまします。

しかも

trace("hallo warld");

とアクションパネルに書いてみても、表示されるのは出力というところ。画面に出るわけじゃないから,
なんどすか? という感じ。

でも、まぁ trace というのは、phpで言うと 確認するためのprint と言う感じですかね。

で、何でも変数にしたり、関数にしたりして、最初に宣言します。 型の宣言もいるらしいですが??秋葉さんの講座はこのあたりはなかったです。

var A=10;
trace(A);


と書くと10と出力されます。
この var というのを見たら変数なんだなと確認できます。とりあえずこの2つの単語くらいを頭に入れてみました。

次に、ActionScript3というのは、ムービークリップを作ってそれをスクリプトで貼り付けるというのは必須で暗記しないといけないことらしい。このクラスの名前をつける方法は覚えてしまいましょう。


まず新規シンボル(Ctrl+F8)でムービークリップを選び、とりあえずマルを書く。Maruと名前をつけます。



プロパティでもリンケージでもライブラリーのところで右クリックして表示させます。 プロパティのところをクリックして、詳細をクリックしても出てきます。

ここのクラスというのをMaruとしてみます。


これを画面にはりつけるのは、




まず宣言する。

var mc : MovieClip = new Maru(); //ライブラリでリンケージ設定したムービークリップ

そして
this.addChild( mc ); //MCを貼る

で張り付けられる。:MovieClip(型宣言) がなくても動きます。でも、これはクセにしておいたほうがいいのかも。とりあえずnew とaddChildいう単語は覚えたいものです(Childが大文字なのをよく忘れます)。子どもがいないのでしみる単語です。 new というのはライブラリーの役者を舞台袖に呼び出しと考えます。 実際に舞台に出るのはaddChildです。 ちなみに反対の舞台から退場はremoveChild です。

スクリプトを書く場所は必ずタイムラインの最初のフレームに書いてください。間違ってムービークリップのタイムラインに書くとエラーになって強制終了して悩みます。

で、デフォルトではx=0 y=0で画像の中心が位置されるので、左端の上にちょこんと出てきます。

これを動かすためには…

this.mc.x=200; //mcというもののx座標は200です。
this.mc.y=200; //mcというもののy座標は200です。
thisというのはこの場所でという宣言ですがなくても動くけどクセにしておいたほうがいいかも。

となる

mcをクリックすると(イベントにより)、色が薄くなって大きくなるというのを作ってみます。

mc.addEventListener( MouseEvent.CLICK, kansu );

と宣言をする。addEventListener はよく使うみたいです。
イベント処理の必須のアイテムだそうです。
ピリオドつけて、CLICK(クリック) ROLLOVER(ロールオーバー), ROLLOUT(ロールアウト)
をセットで覚える。これがマウスイベントです。大文字じゃないと動きません。

上記はmcに クリックしたら kansuという関数をつけますと宣言しています。

次に実際の関数を宣言します。これはPHPに似てます。
無名関数というものだそうです。 e というのは引数(ひきすう)になります。ここはいくつでも,で区切って設定できます。ここの場合は使われていません。何か入れとかないとまったく動きません。 

function kansu(e){
mc.scaleX+=0.1;
mc.alpha-=0.1;
trace( "クリックされました。" );
}


scakeXに+(プラス)があることで増加を示します。 それが 0.1づつ増えます
alphaに- (マイナス)があることで減らしていきます。 それが0.1づつです。

クリックする度に消えます。

よく使う設定

x //横座標軸
y //縦座標軸
rotation  //角度
alpha //透明度
scaleX //横方向の伸縮率 ;1-0
scaleY //縦方向の伸縮率 ;1-0
width // 幅 ピクセル
height // 縦 ピクセルで指定 pxとかつけないように。


はたして、これを習っていったい何になるのか? わからないけれども私は行く。 ええ。行きますとも!

こんな文章でも参考になる方のためのファイルはこちら!
上の文章を単純にコピペするといらないスペースのせいでエラーになることがあります。



****************************************
これを時間があったら全部読んだからって私がゲーム作れるようになるはずもなく。
というか、ゲームに興味がないんだよねぇ。


AS3 外部ファイルのテキストを単純に読み込み

皆様がいろいろ力強いサンプルを出してくれているのですが、私は単純に外部ファイルを読見込ませるだけのファイルが欲しかった。

ここを見てわかりました。



テキストフィールドを作り、それにダイナミックテキストを指定して、textbox1と名前をつけるだけ!

後はリンク先どおり。







//これがないと他のasと組み合わせたときに未定義がどうのというエラーが出ました。ここを読んでひらめく
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

//URLLoaderクラスのインスタンス作成
var load_1:URLLoader = new URLLoader();

//テキストを表示関数テキストのところをtextbox1と名前をつけておいてください!
function func_load(event:Object) {
textbox1.text = load_1.data;
}

//イベントと関連付け
load_1.addEventListener(Event.COMPLETE,func_load);


//外部textファイルの読込みtest.txtを読む
load_1.load(new URLRequest("test.txt"));




flepさんのよさげだけどわかんね~。文字コードのせい?

2010年2月15日月曜日

Flash XMLの日本語が読み込めないのは…メニュー AS2 AS3




ここのhttp://www.flepstudio.org をうろうろして、カッコよくてクライアントに喜ばれるようなものはないかと探しているのですが(今さらフラッシュするより、JQuery勉強した方がいいと思いますが、せっかくいろいろ揃えたFlashをCS3がわからないからって放棄したくない!ただそのこだわり体質が私にそういうことをさせるのだった…)

Flash AS3はPHPに限りなく似ている、やったらやれそうな気がする。で、2時間だけと決めていろいろ読んでます。 本当に結構楽しいです。SEO的にとか、いろいろ思うことはありますが、確かにカッコいいもん!

きっと、私がAS3がさくさくわかるようになる。なるはずだ!なるんだ!お~

という勢いで頑張っています。

で、今日はここを読んで、XMLを表記するだけで簡単に生成されるカッコいいメニュー(AS2)をゲットしました。すみません。↓これはAS2のメニューでしたわ!むちゃ便利なんだけどぉ。ショック~
ちなみにこのmenu. ほとんど知識なくてもxmlの中に、vertical(縦)にするとか指定したり、色を変更できる設定が10個もあります。 当然horizontal(水平に)も一発変換。

こんな便利なものないです。非常に残念…


これが、なかなか最高にカッコよく、無料でいいのかしらと思うほどですが、どうしても日本語ができません。で、調べましたが、何のことはない、日本語が必ず表示されるためには、ディバイスフォントの使用を選んでおかないといけないらしいです。(写真参考)

xmlの書式をutf-8にしたりいろいろいじっていたのがバカみたいでした。


*********************************************************************
これはAS3のメニュー


ちょっと重いのかもしれないですね。フォントを全部読み込んでいるみたいです。


後日、Arial Unicode MS というフォントを使うことで日本語を使えることもわかりました。  これで
こういう海外のサイトで購入しても安心です。買った人からメールで相談したら解決してくれました!
このBlur_Scale_XML_Menu_Vertical は、xmlでpaddingも調整できるためかっこよくて使えると思います。10ドルで買いました!
他の日本語フォントでもキレイに表示されましたので、何かわかりませんが、内部的にいじってできるようになるみたいです。これを私が理解できるようになるにはしばらくかかりそうです。
http://www.flashdo.com/ というのを始めたそうです。ここも便利そう。メールで返事くれるのが嬉しいですね。flepさんはフォーラムでも返事くれません。きっと忙しいのでしょう。


尚、IEの場合AS3のXMLで書いたフラッシュのメニューでリンクが飛ばないという現象があることがわかりました。解決方法はこちらに書いてあります。
*********************************************************************

いろいろこつこつ書いてみたいと思っております。これは書かなくてもできた。 はっきり言うて勉強にはなってないですな。
基本をわかってないということですわな。


外部ファイルの読み込みとかもやってみたいです。


ここに初心者向けのものがあります。これもこつこつ読みたいです。(いったいいつ?)


****************************************

でもさぁ。携帯に表示させるFlash liteというのは、ActionScript2とか1.1なんだよねぇ。 ActionScript2くらいは、本当によく勉強したつもりなので、ちょっとかなりショックよ。 パフォーマンスがかなりいいらしいし、書き方はスマートらしいので、賢かったらわかるらしいが…。 ア~本当に。わからない~。 

なんとな~くActionScript2がこれで、こっちは3だなというのが私なんかは分かる程度なのです。
このあたりはAS2での書き方を説明している(はず)。 
最初に宣言文とかあったらいいのにな…。
いろいろ知ればしるほどに、いったい何のためにAS3を勉強するのか、ちょっと疑問に思うけど。
今はjQueryを勉強するべきだとは思うが、ついやってしまう。 きっとわかる。いつかわかる私は負けないぞ! と、書いてみる

ActionScript3初心者講座


********************************************************************************************
コッチの方がAS3ですので加工して日本語を表示することもできました。




このサイトとかもコツコツ勉強したらかなり力つきそうだけど、これをマスターしたらもう定年になりそうな気がします。 とりあえず、自分のサイトに作るものの道理くらいはマスターしておくようにしたいなぁ。
とにかく応用がきくようになりたいです。

2010年2月11日木曜日

nucleus のRSSから写真を抜き出してランダム表示

別にnucleusでなくてもいいと思いますが、パチンコ攻略の御大「吉野大観」のサイトはnucleusで作りましたが、毎回違って見えるように写真をランダム表示するようにしてみました。


<?php
// URLの指定
$rdf_url = "http://www.thetruth.jp/atom.php?blogid=4";

// RSSを取得
$content = file_get_contents($rdf_url);



// rdfを解析する (下の関数で処理)
$datas = analyze_rdf($content);


// rdf ファイルを解析するための関数
function analyze_rdf($cnt) {
// <item> ~ </item> を切り出す
$ptn = '/<entry[^>]*>(.+)</entry>/sU';
preg_match_all($ptn, $cnt, $matches);

// マッチしてれば
if (count($matches) > 0) {
// 配列に入れる
$items = $matches[1];
} else {
return FALSE;
}


// パターンの指定
$ptns["img"] = '!<img[st]+src[st]*="(.*)"[^/>]*?/>!sU';
$ptns["link"] = '/<link rel="alternate" type="text/html" href="(.*)" />/sU';
$ptns["title"] = '/<title type="html"><![CDATA[(.*?)]]></title>/sU';
$return_array = array();




// link の抜き出し
foreach ($items as $val) {
$res = array();

preg_match($ptns["img"], $val, $matches);
$res["img"] = $matches[1];
preg_match($ptns["link"], $val, $matches);
$res["link"] = $matches[1];
preg_match($ptns["title"], $val, $matches);
$res["title"] = $matches[1];

$return_array[] = $res;

}

// 配列を返す
return $return_array;
}

// $count 個分の配列を生成
for ($i = 0; $i < $count; $i++) {
$tmp_array[] = $i;
}



// HTML に整形するための関数

function make_html($data) {
$str = "<a target="_parent" href="" . $data["link"] . "">";
$str .= "<img src="". $data["img"] ."" width="264" height="215" alt="パチンコ楽しい!:". $data["title"] . "" /></a>";
return $str;
}

$num = rand(0,3);
print make_html($datas[$num]);

?>

正規表現を実はまったく知らないのに人のを見て想像して書いています。勉強したいけどもうあれは頭に入りません。チンプンカンプンに頭がなります… orz
フラッシュなんかにも加工できるかも。

尚、このプログラム、nucleusを私はTinyMCEで運用しているのですが、なぜか最新のTineMceと古いのではhtmlが違うらしく、最新のものだと写真を絶対パスで入力してしまうので、いちいち相対パスに書きなおさないとうまく動きません。 新しいものは、alt などが後ろに来て、前のはalt が前なので、html でそのように書き直します。なんとかどっちでも載せられるようにしたいと思ったのですが、RSS分析してもよくわからなかった。orz.
これを追求すると疲れそうなので次の機会に…。 あ~もう。

Blogger テンプレート Navbar他 デザインチップス


現代数学社様のサイト新刊情報の部分をブロガーに致しました…。

お客さんなんかには、一見手を抜いたように見られるのですが、最新情報だけでもブログにすることでSEO対策は確実によくなる。なぜか?そりゃGoogleがやっているからです。

SEO的に考えたら日本においては本当はyahooブログがいいのかもしれませんが、yahooブログはデザインの調整が自由にならないし、なんか広告がつくし、な~んか読みにくいなといつも思う。

その点、googleのブログは、デザインが自由自在になり、これが完全無料というのはすごいことだなと思いますね。cssで細かいデザイン要素を設定できるので文字を大きくしたり、タイトル回りをデザインしたりとかなり普通のホームページっぽくできると思います。海外のサイトでは、本当にbloggerだけで作っているホームページも多いです。bloggerで1年あたり、10ドルでオリジナルドメインも取れますし、予算ないところはそれでいいと思います。

デザインは、私がお薦めなのは海外のサイトで安く売っているのを買うことです。 だいたいいつもここで買います。 今回元になったのはこれです。仕入は12ドルです。へへ。

英語用のものなので、それをベースに加工していかないといけないので、CSSまったく知らないとしんどいかもしれませんが、ちょっと知ってたらお薦めです。ちなみにリンク先のテンプレートの紹介サイトも100%ブロガーで作られていると思います。 いろいろあるけど無料のより有料のやつの方がやはりカッコよろしいジャバスクリプトがついててプロっぽいですね。(自分じゃ書けないわ。こんなもの!) とにかくいろいろあるらしいです。 ありすぎて見ていて疲れるくらい。

私が買ったのはなぜかnavi-barが見えないのですが、これを消すことはgoogleはイヤじゃないらしいし、ここに消し方も書いてありました。
これを読んではたと気がつきまして、このように書いておりました。
/* Blogger Navigation Bar */
#Navbar1 {
margin: 0;
padding: 0;
visibility: hidden;
display: none;
}

↓こっちの方が上部に空間がなくキレイにできます。
/* Blogger Navigation Bar */
#navbar-iframe {
display: none !important;
}
#navbar {
display: none;
}






これでナビバーが消えるらしいです。 最近透明も選べるようになって、こんなのもカッコいいですね。


こんなソフトもあるので、英語がわかれば初心者も自由自在です。 デモ版で試してみましたが、何も考えなくてもいっぱい作れて楽しかったです。画像とかも別サイトから引っ張ってくるようになるみたいです。


で、アクセスカウンターとかアマゾンのアフェリ画像などをつける場合は、ガジェットの追加でhtml+javascriptを選んで追加しないと本体のレイアウトに書き込むとエラーになります。

本文のところにはかなり自由に書けます。 ジャバスクリプトも書き込めます。
写真のポップアップも例えば

<a href="#" onclick="window.open('https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCsbNEc4Hn0yS1oAO2yeWHh-NasGdXYdF0VfT7UIzXY50Shkh-Qm0HoGuBAmWhCD84HUIl0we-GCtHtl3yPQeiDiVB2_ODQr7YGaNziravYL6iAjoTC_Li9dC0dnWmPVyAl1FSoQ/s1600-h/978-4-7687-0347-2.jpg','javascript_1','height=606,width=424,resizable');"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 224px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCsbNEc4Hn0yS1oAO2yeWHh-NasGdXYdF0VfT7UIzXY50Shkh-Qm0HoGuBAmWhCD84HUIl0we-GCtHtl3yPQeiDiVB2_ODQr7YGaNziravYL6iAjoTC_Li9dC0dnWmPVyAl1FSoQ/s200/978-4-7687-0347-2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5436575959114402994" /></a>

と書いたらポップアップウィンドウになりスマートになります。普通にブロガーにアップした画像のアドレスを見てopen以下に書き込みます。ちょっとめんどうですけどね。

せっかく書くデータをホームページは書いたり消したりしますが、ブログだと追加していくだけなので手間のはぶけるし、せっかく世に出した情報を引っ込める必要もありません。

被リンクを獲得するという意味でもサイトの一部をbloggerにするというのはアリだと思います。

後、bloggerに提案するとすれば、続きを読むを作って、トップページの見え方と、単一アイテムページの見え方を調整できるようにできたら最高! で、トップページの一つ目のアイテムだけデザイン変更できたりしたら、もうホームページはbloggerでいいということになるんじゃないでしょうかねぇ。

googleにはもっと頑張って欲しい。googleバズとかいうtwitterを今さら追い越そうとかしてもムダなプロジェクトはやめて…

twitter のtetweetを簡単に追加できるボタンも発見! これで宣伝効果もばっちり!
このブログにもつけてみました。



よくあるブログの両端のコラムの影ですが、このようにするとautoサイズで設定することがわかりました。これは目からウロコのアイデアですね。

2010年2月6日土曜日

Retreetを増やしてキャンペーンを展開する方法

JumpeyeComponentsからメールが来た。ご意見を伺いたいからfacebookで発言してね。と。

欧米ではfacebookアカウントは誰でも必ず持ってるものらしいですな。
日本は自分の顔を出して発言するというのが苦手で、mixiみたいな嫌らしい感じになるけど。

で、内容はAS3のフラッシュをアドワーズ広告に採用してくれという請願をお願いしますということでした。
正直この頃、フラッシュよりも、jqueryという気がしているので、なんかピンとこないんだけどね。
確かに広告の表現の中でものすごいインタラクティブなものをAS3で作れたらおもしろいと思うけど…。


ま、話はおいといて、このDMで私が注目しましたのは、クリックしたらRTが作れるというすばらしいものである。 で、そのアドレスがものごつ短いのであった。

文章入りのRTのクリックを作るhtmlは結構簡単らしい。

でも自分のtwitterやメールの文章でクリックしてもらっただけで、自分のRTを強制的に作らせたらおもしろいじゃないか。

その方法も超簡単

http://twitter.com/home?status=RT - @yumisaiki ゆみちゃんかわいいね。http://yumisaiki.blogspot.com/


というリンクをhttp://bit.ly のサイトに行き、短くしてもらって、そのリンクを使えばOK!いちいちブログに長々書けない場合にらくちん!
リンクなのでスペースは負荷です。#yumichan とかのリスト機能を最後につけるとうまく動きません。
twitterキャンペーンにご協力くださいとか、いいと思います。


で、ゆみちゃん可愛いねキャンペーンはこちらです!クリックして私の人気をアップしてください!もう誰も可愛いなんていってもらえなくなった私に愛をください。

2010年2月5日金曜日

google calenderの情報を表示させるPHP

前回、偉そうに紹介しましたが、久しぶりにいじってみたらGoogle CalendarのRSSの仕様が変更になっており、若干のパージョンアップが必要になりました。また、情報の数を自由にできるバージョンアップをしました。

また、プログラム的にもっさいところがあったことが判明しました! バカすぎです。 恥ずかしいです!
でも、おばさんは負けません!頑張ります。

次は場所とかを引っ張って携帯とかの表示に便利なように頑張ってみたいと思います。

ありがたいXMLライブラリーを使います。(IRONでリンク先はひらないので注意)


<?php
//エラーは表示させません!
error_reporting(1);
//XMLライブラリーを引っ張ってきます
require('XMLLibrary.php');
//googleカレンダーのRSSを指定
$data = file_get_contents("http://www.google.com/calendar/feeds/1qkkqtv5eo3jimiidbltonpi1s%40group.calendar.google.com/public/basic");
//xmlライブラリーの命令みたいです
$array = XML_unserialize($data);
//配列を作ります
$entry = $array['feed']['entry'];
//基準値用の本日の日付
$today = date("Y/m/d");

//配列にするdatasを準備します。まだ何も入っていません。
$datas = array();

//$entryの要素をカウントし、一個一個要素を入れてきます。
$count = count($entry);
for($i=0; $i<$count; $i++){
$tlong = strlen($entry[$i]['title']);
if($tlong>38){$entry[$i]['title'] = mb_strimwidth($entry[$i]['title'],0,37);
$cont[$i]['title'] = $entry[$i]['title']."&nbsp;...";
}else $cont[$i]['title'] = $entry[$i]['title'];
$cont[$i]['content']=mb_strimwidth($entry[$i]['summary'],3,30);
array_push($datas,$cont[$i]['content']);
$cont[$i]['link'] = $entry[$i]['link']['0 attr']['href'];
}

//今日の日付より前の日付のものを削除します
foreach($datas as $i => $s) {
if (strtotime($s) < strtotime($today)) {
/* 配列から削除する */
unset($datas[$i]);
}
}
//並べ替えます
asort( $datas );

//データの数を数えて、7個以上野場合はあるれた数を削除します。
$nub = count($datas);
if ($nub>=7){$a = $nub-7;
unset($datas[$a]);
}
 ここのところ間違っているので、こっちを見てください。
//印刷部分
foreach ($datas as $key => $value) {
print <<<ENTRY_PEINT
<p class="m"><a href="#" onclick="window.open('{$cont[$key][ 'link' ]}','javascript_1','height=250,width=700,resizable');">{$cont[$key]['title']}</a></p><p class="s">{$cont[$key]['content']}…</p></p>n
ENTRY_PEINT;
}

?>


なんと短いことでしょう!
http://www.actionk.co.jp/gcalender.php

utf-8で表示できます。 rssがutf-8になったみたいで文字変換の必要がなくなりました。