0

Flash プロジェクトを扱っていますが、Flex の機能が必要です。そこで、Flex アプリケーションを作成してビルドし、.swf ファイルを取得します。

Flash プロジェクトでは、「Loader」クラスを使用して、Flex Builder で作成された .swf ファイルを読み込みます。この .swf ファイルはロードされ、ステージ上で適切に表示されますが、ステージ上の他のすべての Flash コンポーネントとオーバーラップします。重なり合う方向は右向きと下向きです。

フレックス mxml ファイル (component.mxml):

<s:Application xmlns:...
width="160" height="120">
...
</s:Application>

「Loader」クラスを使用したフラッシュへのロード:

var loader:Loader = new Loader();
loader.load(new URLRequest("component.swf"));
loader.x = COMPONENT_POS_X; //constant
loader.y = COMPONENT_POS_Y; //constant
stage.addChild(loader);

「ローダー」の幅を設定しようとすると、フレックス コンポーネント全体が消えます。どうしたの?

ここに画像の説明を入力

4

1 に答える 1

0

解決策: ロードされた swf にマスクを追加します。

ソース: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#methodSummary

信頼されていないソース (Loader オブジェクトのルート SWF ファイルのドメイン以外のドメインなど) から SWF ファイルをロードする場合、Loader オブジェクトのマスクを定義して、ロードされたコンテンツ ( Loader オブジェクト) を、次のコードに示すように、そのマスクの外側のステージの部分に描画します。

import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
rect.graphics.endFill();
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "http://www.unknown.example.com/content.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);
于 2012-09-18T10:14:06.490 に答える