Home > Archives > 2009-07

2009-07

複数のガイドを一度に引けちゃうJSX


PhotoShopでガイドを引く場合

  1. PhotoShopのメニュー>ビュー>新規ガイドを選択して、数値を入力(CS3の場合)
  2. ガイドをドラッグしながら、情報パレットを見ながら位置調整

といった感じでしょうか?

ビュー>新規ガイドを使う場合

PhotoShopで新規ガイド

まぁ、これを使えばいいんですけど…

先にJSFを作ったことなので、調子に乗って、複数のガイドを一度に引けちゃうJSX作ってみました。

一度にx軸方向に複数のガイドを引いてくれるJSX

/*
 * 
 * 一度にx軸方向に複数のガイドを引いてくれるJSX
 * 
 * Copyright (C) 2009 あつのすけ(flabaka)
 * version 1.0.0
 * CreateDate 2009/07/29 
 * 
 * Developed by あつのすけ(flabaka)
 * http://flabaka.com/blog/
 * 
 * (C) 2009 flabaka and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 */
//ダイアログボックスを表示させる

var data = prompt("x軸に複数のガイドを引く","値をカンマで区切ってください");

//カンマを取り除き、配列に入れる

var myarray = data.split(",");

//配列の値を使ってガイドを作成する
for(var i=0;i<myarray.length;i++){
	guide(myarray[i]);
}

function guide( value )
{
var id1 = charIDToTypeID( "Mk  " );
    var desc1 = new ActionDescriptor();
    var id2 = charIDToTypeID( "Nw  " );
        var desc2 = new ActionDescriptor();
        var id3 = charIDToTypeID( "Pstn" );
        var id4 = charIDToTypeID( "#Pxl" );
        desc2.putUnitDouble( id3, id4, value );
        var id5 = charIDToTypeID( "Ornt" );
        var id6 = charIDToTypeID( "Ornt" );
        var id7 = charIDToTypeID( "Vrtc" );
        desc2.putEnumerated( id5, id6, id7 );
    var id8 = charIDToTypeID( "Gd  " );
    desc1.putObject( id2, id8, desc2 );
executeAction( id1, desc1, DialogModes.NO );
}

一度にy軸方向に複数のガイドを引いてくれるJSX

/*
 * 
 * 一度にy軸方向に複数のガイドを引いてくれるJSX
 * 
 * Copyright (C) 2009 あつのすけ(flabaka)
 * version 1.0.0
 * CreateDate 2009/07/29 
 * 
 * Developed by あつのすけ(flabaka)
 * http://flabaka.com/blog/
 * 
 * (C) 2009 flabaka and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 */
//ダイアログボックスを表示させる

var data = prompt("y軸に複数のガイドを引く","値をカンマで区切ってください");

//カンマを取り除き、配列に入れる

var myarray = data.split(",");

//配列の値を使ってガイドを作成する
for(var i=0;i<myarray.length;i++){
	guide(myarray[i]);
}

function guide( value )
{
var id1 = charIDToTypeID( "Mk  " );
    var desc1 = new ActionDescriptor();
    var id2 = charIDToTypeID( "Nw  " );
        var desc2 = new ActionDescriptor();
        var id3 = charIDToTypeID( "Pstn" );
        var id4 = charIDToTypeID( "#Pxl" );
        desc2.putUnitDouble( id3, id4, value );
        var id5 = charIDToTypeID( "Ornt" );
        var id6 = charIDToTypeID( "Ornt" );
        var id7 = charIDToTypeID( "Hrzn" );
        desc2.putEnumerated( id5, id6, id7 );
    var id8 = charIDToTypeID( "Gd  " );
    desc1.putObject( id2, id8, desc2 );
executeAction( id1, desc1, DialogModes.NO );
}

使い方

  1. スクリプトフォルダに入れる
  2. 任意の場所から実行する

スクリプトフォルダに入れる

先のコードをコピペして、.jsxという拡張子で保存して、以下の場所に入れておきます。

XPの場合
C:\Program Files\Adobe\Adobe Photoshop CS3\プリセット\スクリプト

PhotoShopを起動>ファイル>スクリプトから、先のスクリプトを選択します。

スクリプトを実行

JSFの時と同様、(ガイドを引きたい)数値を、カンマ区切りで入力します。

x=50,x=100,x=150,x=200の計4本ガイドを引きたい場合、50,100,150,200と入力し、OKボタンを押します。

ちなみにMacだと、こんな画面になります。

Macの場合

すると、入力した数値の箇所に、ガイドが作成されます。

y軸方向にガイドを引きたい場合も、手順は一緒です。

任意の場所から実行する

プリセット>スクリプトフォルダに入れなくても、実行出来ます。

仮にデスクトップにjsxファイルを置いてあった場合で考えると、PhotShopを起動>ファイル>スクリプト>参照を選択し、デスクトップにあるファイルを選べばOKです。

個人的感想ですが、プリセット>スクリプトのフォルダに入れてしまった方が、楽かなぁ…と思います。

良かったら使ってやってください!

複数のガイドを一度に引けちゃうJSF


FireWorksでガイドを引くって場合

  1. 適当にステージにガイドをドラッグ&ダブルクリックで数値を指定
  2. ステージを拡大&情報パレットを見ながら位置を調整

みたいな感じで行うかと思います。

ダブルクリックで数値を指定

ガイドをダブルクリックして、数値を直接指定します。

数値を指定してガイドを配置

情報パレットを見ながら、位置を調整

情報パレットを見ながら、ガイドの位置を調整します。

情報パネルを見ながら、位置を調整

で、ガイドを4本とか引くとなると、この作業を繰り返し行うと…

けど、これが意外と面倒だったりします。

前から、「これ、どうにかならないかなぁ…」と思っていたんですが、「FlashだとJSFLを使えばイロイロ出来ちゃうから、FireWorksもJSFを使えば、サクッといけるんじゃない?」と思ったので、早速試してみました。

一度にx軸方向に複数のガイドを引いてくれるJSF

/*
 * 
 * 一度にx軸方向に複数のガイドを引いてくれるJSF
 * 
 * Copyright (C) 2009 あつのすけ(flabaka)
 * version 1.0.0
 * CreateDate 2009/07/27 
 * 
 * Developed by あつのすけ(flabaka)
 * http://flabaka.com/blog/
 * 
 * (C) 2009 flabaka and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 */
//ダイアログボックスを表示させる

var data = prompt("x軸に複数のガイドを引く","値をカンマで区切ってください");

//カンマを取り除き、配列に入れる

var myarray = data.split(",");

//配列から複数のガイドを作成

for(var i=0;i<myarray.length;i++){
	fw.getDocumentDOM().addGuide(myarray[i], "vertical");
}

一度にy軸方向に複数のガイドを引いてくれるJSF

/*
 * 
 * 一度にy軸方向に複数のガイドを引いてくれるJSF
 * 
 * Copyright (C) 2009 あつのすけ(flabaka)
 * version 1.0.0
 * CreateDate 2009/07/27 
 * 
 * Developed by あつのすけ(flabaka)
 * http://flabaka.com/blog/
 * 
 * (C) 2009 flabaka and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 */
//ダイアログボックスを表示させる

var data = prompt("y軸に複数のガイドを引く","値をカンマで区切ってください");

//カンマを取り除き、配列に入れる

var myarray = data.split(",");

//配列から複数のガイドを作成

for(var i=0;i<myarray.length;i++){
	fw.getDocumentDOM().addGuide(myarray[i], "horizontal");
}

ソースはこんな感じです。

使い方

上記のソースを.jsfという拡張子で保存します。

このファイルを、FireWorksのインストールフォルダ内のCommandsフォルダに入れます。

あとは、メニュー>コマンドから選択。(一度にx軸方向に複数のガイドを引いてくれるJSFの場合)

ダイアログパネルが表示される

するとダイアログボックスが表示されるので、数値をカンマ区切りで入力します。

例えば、x = 50,x = 100,x = 150,x = 200と計4本のガイドを引きたい場合なら、50,100,150,200と入力し、OKボタンを押します。

すると、JSFが入力した数値に(自動的に)ガイドを作成してくれます。

y軸方向にガイドを引きたい場合は、「一度にy軸方向に複数のガイドを引いてくれるJSFコマンド」を使います。

両方を組み合わせて使うと、(そんなに手間を掛けずに)サクッとグリッドが引けちゃったりしますよ!

別になくてもいいけど、あったら便利かも? と思ったので、公開しておきます。

PV3DのBasicView用の雛形を書いてくれるJSFL


「よしっ、PV3Dでもやろう!」…と思っても、Flash IDEだとクラスのimport文を(毎回)書いたりしなければならず、面倒なことが多いですよね?

僕もFlash IDE&フレームアクションでPV3Dの練習をしたりしますが、毎回「う~ん、面倒っ!」って思ってました。

意外とそこで、やる気がそがれちゃったりします…

そこで、PV3DのBasic View用の雛形を書いてくれるJSFLを作ってみました。

ダウンロードしたファイルをどこに入れるのか? とか、コマンドの実行手順等は、一昨日のエントリをご覧ください。

で、このコマンドを実行すると…

// Papervision3Dライブラリを読み込む
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;

// BasicViewを作成
var world:BasicView = new BasicView();
addChild(world);

// primitiveとかを作成

// 作成したものをworldに追加する
world.scene.addChild(●●●);

// startRendering()させる
world.startRendering();

// EnterFrameさせる
addEventListener(Event.ENTER_FRAME, loop);

// loopさせたい処理
function loop(e:Event){

};

こんなコードが1フレーム目に記述されます。

毎回記述するくだりを、「ねぇ、JSFL君。君、ちょっと、やっといて!」みたいな感じです。

あとは必要な箇所だけ手を加えてあげれば、OK。

ちょっと試してみたい! と思った時などに、サクッとできちゃうので、良いかと…

ダウンロードは以下よりどうぞ!

かなり力業のソースになっております。

アクションパネルにstop();を記述するJSFL


Progressionのフォーラムに書いたものなんですが、以前、このブログにエントリしていたものだと思っていました。

確認してみたら、どうやら僕の記憶違いだったみたいなんで、こちらにも…

新規レイヤー&レイヤー名を「as」に&stopを記述

新規シンボルを作成して、とりあえず1フレーム目にstop();を書いておく場合、毎回毎回、新規レイヤー作って、レイヤー名を変更して、アクションパネルを開いて…というのは、面倒だなぁ…と。

そんな場合、JSFLを使ってあげると、サクッといけちゃいます。

//getDocument~を毎回書くのは面倒なので、pathに入れておく

var path = fl.getDocumentDOM().getTimeline();

//新規のレイヤーを作成し、レイヤー名をasにする

path.addNewLayer("as","normal",true);

//作成したレイヤーをロックしておく
path.setLayerProperty("locked",true);

//1フレーム目に、stop()を記述

path.layers[0].frames[0].actionScript = 'stop();';

このコードをコピペして、.jsflという拡張子で保存しておきます。

で、このファイルを、以下のフォルダに入れておきます。(ProgressionのJSFLファイルが入っているのと同じ箇所です)

Windows XPの場合
C:\Documents and Settings\ユーザー名\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Commands

あとはFlashを立ち上げて、1フレーム目にstop()を記述したい箇所で、メニューのコマンド>保存したファイル名を選択すれば、最上位にasというレイヤー名のレイヤーが作成され、1フレーム目にstop();が記述されます。

選択したフレームをキーフレームに変更&stop();を記述

タイムラインを使っていて、任意のフレームをキーフレームに変換して、stop();を書きたいという場合

任意のフレームをキーフレームに変換

//fl.getDocument~を毎回書くのは面倒なので、pathに入れておく

var path = fl.getDocumentDOM().getTimeline();

//現在のフレームをキーフレームに変換する

path.insertKeyframe();


//現在選択されているフレームに、stop()を記述する

path.layers[0].frames[path.currentFrame].actionScript = 'stop();';

30フレーム目を選択して、このコマンドを実行すると…

30フレーム目をキーフレームに

選択したフレームがキーフレームに変換され、加えてstop();もアクションパネルに記述されます。

slidesライブラリを使ってスライドを作る場合とか、タイムラインで作業するときは、ちょっとは使えるかな? と。

この任意のフレームをキーフレームに変換&stopを記述するコマンドですが、スクリプトのレイヤーが最上位にあるという前提で作ってありますので、ご注意ください。

あと、コマンドを実行する場合ですが、ショートカットキーを割り当てておくと、より便利かと思いま~す。

query_postsについてのメモ

  • 2009-07-22 (水)
  • Web

WordPressのquery_postsについて、あやふやだった箇所があったので、メモ。

カテゴリ「news」を指定したい場合(その1)

<?php query_posts("category_name=news"); ?>

category_nameを使うと、カテゴリ名で指定が可能。

カテゴリ「news」を指定したい場合(その2)

newsのカテゴリIDが1の場合。

<?php query_posts("cat=1"); ?>

catを使うと、カテゴリIDで指定が可能。

カテゴリ「news」を指定したい場合(その3)

newsのIDが1。workのIDが2だった場合。

<?php query_posts("cat=-2"); ?>

catの値にマイナスを設定すると、2以外(この場合、work以外→news)を表示。

カテゴリを複数指定する場合

newsのIDが1。workのIDが2だった場合。

<?php query_posts("cat=1,2"); ?>

複数の値を設定する場合は、カンマを使う。

他の引数と組み合わせる場合

newsのIDが1。workのIDが2だった場合。

<?php query_posts("posts_per_page=5&cat=1,2"); ?>

他の引数と組み合わせる場合、間に&を使う。

Home > Archives > 2009-07

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top