■ FLASH MX + JAVA ■

このエントリーをはてなブックマークに追加
197Java軍曹
>>195
御意。要するにFlashを埋め込んだHTML自体をJSP等で吐き出す場合、
そこにかかれているURL自体を動的に書き換える事で、おっしゃるような処理ができるものと思われます。

また、以前自分が書いた方法は、埋め込まれたFlashに対して、

{ActiveXインスタンス}.SetVariable(変数名,値);

とすると任意の値をJavaScriptからActionScriptへ渡す事ができるので、
この後、

{ActiveXインスタンス}.GotoFrame(フレーム値);
{ActiveXインスタンス}.Play();

とする事で、貴殿が望むような結果を得る事もできると思われます。
198Java軍曹:03/01/04 12:12
尚、蛇足(で、ちょっとトリッキーな話)ですが、
この、SetVariable(変数名,値)を使うと、JavaScriptから、ActionScript内の任意のメソッドを呼び出す事ができます。
例えば、ActionScript上で以下のような変数を用意して...

// ActionScript内
function CFoo() {
this.param = null;
this.addProperty("someMethod",
function() {// getter
return this.param;
}
,
function(arg) {// setter
this.param = arg;
}
);
}
var oFoo = new CFoo();

その後、

// これはJavaScript内
{ActiveXインスタンス}.SetVariable("oFoo.someMethod",値);

とすると、ご想像通り「ActionScript内のoFoo.someMethodのセッタ」が動きます。
後はこのプロパティハンドラをわかり易い名前にし、そのハンドラ内で任意の処理を書けば、
「JavaScriptからActionScriptを完全にコントロールできる」という事になります。

...って、FlashMX限定ですが。
199Java軍曹:03/01/04 12:14
失礼、インデントが死にました。

// ActionScript内
function CFoo() {
  this.param = null;
  this.addProperty("someMethod",
    function() {  // getter
      return this.param;
    }
  ,
    function(arg) {  // setter
      this.param = arg;
    }
  );
}
var oFoo = new CFoo();