[解決済み] Flex 4:FlexでGIFアニメーションを使用することはできません。
質問
私は非常にFlexに新しいですし、今どのように仕事のプロジェクトのためのGIFアニメーションを使用することを学ぶ。以下の例では、非常に単純なフラッシュプレーヤー(テスト目的)です。私が行う必要があるすべては、プレーヤーが再生されると、実行中のspinner.gifを表示することです。スピナーなしでは、プレーヤーは問題なく動作していますが、私が "show_spinner" 関数と行を追加したとき、画面には何も表示されません。
<local:AnimatedGIFImage id="spinner" source="spinner.gif" visible="false" verticalCenter="0" horizontalCenter="0"/>
.
ブルザーウィンドウは単に空白です。Webで検索してみましたが、まだ答えは見つかりませんでした。私はフラッシュプレイヤーのコンポーネント表示方法を完全に理解していないと思います...。何かアドバイスがあれば、とてもありがたいです。
Spinner.mxmlファイルです。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:local="*"
xmlns:s="spark.components.*" layout="vertical" verticalAlign="top"
backgroundColor="white"
viewSourceURL="srcview/index.html"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
import mx.events.VideoEvent;
private function videoDisplay_ready():void {
videoDisplay.visible = true;
controlBar.visible = true;
}
private function show_spinner(evt:mx.events.VideoEvent):void {
if (evt.state == "playing") {
spinner.setVisible(true);
} else {
spinner.setVisible(false);
}
}
private function initApp(){
videoDisplay.addChild(spinner);
}
]]>
</mx:Script>
<s:Group>
<mx:VideoDisplay id="videoDisplay" visible="false" width="{200}" height="{200}"
ready="videoDisplay_ready()"
source="http://www.derekentringer.com/flv/purple_plasma.flv"
stateChange="show_spinner(event)">
</mx:VideoDisplay>
<mx:ControlBar id="controlBar" visible="false">
<mx:Button id="play" name="play" label="Play" click="videoDisplay.play()"></mx:Button>
<mx:Button id="pause" name="pause" label="Pause" click="videoDisplay.pause()"></mx:Button>
</mx:ControlBar>
<local:AnimatedGIFImage id="spinner" source="spinner.gif" visible="false" verticalCenter="0" horizontalCenter="0"/>
</s:Group>
</mx:Application>
アニメーテッドGIFImage.as ファイル (以下 http://iamjosh.wordpress.com/2009/02/03/animated-gifs-in-flex/ ):
package
{
import flash.net.URLRequest;
import mx.controls.Image;
import mx.core.UIComponent;
import org.bytearray.gif.player.GIFPlayer;
public class AnimatedGIFImage extends Image
{
private var _gifImage : UIComponent;
public function AnimatedGIFImage()
{
super();
this._gifImage = new UIComponent();
}
override public function set source(value : Object) : void
{
if (!value is String)
{
throw new ArgumentError("Source must be of type String");
}
super.source = value;
}
override protected function createChildren() : void
{
super.createChildren();
var player : GIFPlayer = new GIFPlayer();
player.load(new URLRequest(this.source as String));
this._gifImage.addChild(player);
}
override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void
{
this.addChild(this._gifImage);
super.updateDisplayList(unscaledWidth, unscaledHeight);
}
}
}
解決方法は?
ひとつだけ、試してみてください。
- プロジェクトを右クリックし、[プロパティ]をクリックします。
- Flex Compiler"]をクリックします。
- 非エンベデッドファイルを出力フォルダにコピーする"がチェックされていることを確認します。
これにより、画像は出力フォルダ(通常はプロジェクトのbin-debug)にコピーされるようになります。コンパイルした後、実際にそのフォルダを開いて、ファイルがちゃんと入っているかどうか確認することができます。もし入っていなければ、手動でファイルをコピーして、それがうまくいくかどうか見てください。あるいは、その場所でまったく動作しないかどうかを確認するために、通常の画像を試してみることもできます。
がんばってください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン