flashのムービークリップにリンクを複数張る方法
flash初心者です。質問します。
ムービークリップのMATRIXと円運動関数を使用して、3Dに回転するナビゲーションを作成したいのですが、ムービークリップ毎に個別にリンクを貼る方法が分からず、行き詰っています。
スクリプトは後記に記述しますが、this.onRelease=function() と getURL(url, "_blank");で
指定URLに飛んでくれるのですが、全てのムービークリップに1つのURLが適用されてしまい
ナビゲーションとしての意味がなくなってしまいます。
var url = ("http://www.yahoo.co.jp/");の部分にURLを付け足してみたり色々試したのですが、
うまくいきません。
緊急なので、早めにお返事いただけるとありがたいです。何卒、よろしくお願いします。
▼ 以下が問題のスクリプトです ▼
import flash.geom.Matrix;
import flash.filters.BlurFilter;
var composer:Array=new Array("a","b","c",
"d","e","f","g","h",
"i","j");
var url = ("http://www.yahoo.co.jp/");
var num = 10;
var speed:Number;
var diff:Number = 0;
var rd:Number;
var a:Number;
var depth:Number;
var v:Number;
this.createEmptyMovieClip("composerNameBox",100);
composerNameBox.createTextField("tf",120,0,0,220,25);
composerNameBox._x = -10;
composerNameBox._y = 145;
for (i=1; i<=num; i++) {
var mc = this.attachMovie("sp"+i, "sp"+i, i);
mc.n = i;
mc.onEnterFrame = circulating;
}
function circulating() {
speed = (Stage.width/2-_xmouse)*0.005*0.001*Math.PI;
diff += speed;
rd = diff+this.n/num*2*Math.PI;
a = Math.sin(rd)
b = 0.3*Math.cos(rd);
c = 0;
d = 1;
mcx = 100-200*Math.cos(rd);
mcy = 40+40*Math.sin(rd);
var myMatrix:Matrix = new Matrix(a, b, c, d, mcx, mcy);
this.transform.matrix = myMatrix;
depth = Math.floor((3+Math.sin(rd))*2500);
this.swapDepths(depth);
if (this.rollover) {
v = 5;
} else {
v = Math.floor((1-Math.sin(rd))*5.5);
}
blurChange(this);
this.onRollOver=function() {
this.rollover = true;
composerNameBox.tf.text = composer[this.n-1];
txtFormat(composerNameBox);
}
this.onRollOut=function() {
this.rollover = false;
composerNameBox.tf.text = "";
}
this.onRelease=function() {
getURL(url, "_blank");
}
}
function blurChange(this_mc) {
var myBlur:BlurFilter = new BlurFilter(v, v, -5);
this_mc.filters = [myBlur];
}
function txtFormat(mc) {
var format = new TextFormat();
with (format) {
size = 12;
color = 0x000000;
align = "center";
bold = true;
}
mc.tf.setTextFormat(format);
}
お礼
ご回答ありがとうございます! 今回のケースはA_mcの起点がトップレフトにあり、それが動かせない状態です。。。 なのでA_mcの中心をステージの中心にもっていきたいのですが、 A_mc.x = stage.stageWidth * 0.5; A_mc.xはそもそも基点のX座標の位置になるのでしょうか?