Flex 4でカスタムプリローダーを正常に実装した人はいますか?私の経験では、アプリケーションタグでpreloader = "com.foo.MyPreloader"を使用してカスタムプリローダーを指定すると、プリローダーの目的を破ってSWFが完全にダウンロードされるまで、プリローダーは表示されません。おそらくこれは、まだベータ版のFlex 4フレームワークのバグですか?Flex 4のカスタムプリローダー?
2
A
答えて
3
私はプリローダ内のメインアプリケーションクラスの1つを参照していました。すべてのクラスがプリローダにコンパイルされ、すべてがロードされるまでプリローダが表示されません。今後の参考のために
:あなたは絶対に必要なもの以上のものを使用していないことを確認し、あなたのプリローダー内のすべての参照をダブルチェック
1
あり、ここでのFlex 4カスタムプリローダーのコードサンプル私がきたhttp://www.leavethatthingalone.com/blog/index.cfm/2009/11/11/Flex4CustomPreloader
4
ですこの例を多くのFlex3プロジェクトで使用しています。それはまだFlex4 SDKで動作しています:
私はどこからそれを得ることができるか思い出すことができます。そして、あなたは
<s:Application tag ... preloader="com.YYY.XXX.shell.view.CustomPreloader"
CustomPreloader
package com.YYY.XXX.shell.view
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
import mx.events.FlexEvent;
import mx.preloaders.DownloadProgressBar;
public final class CustomPreloader
extends DownloadProgressBar
{
public var loader : LoadScreen;
private var _timer : Timer;
public function CustomPreloader()
{
super();
}
override public function initialize() : void
{
super.initialize();
this.loader = new LoadScreen();
this.addChild(this.loader);
this._timer = new Timer(1);
this._timer.addEventListener(TimerEvent.TIMER, handleTimerTick);
this._timer.start();
}
override public function set preloader(preloader : Sprite):void
{
preloader.addEventListener(ProgressEvent.PROGRESS, SWFDownLoadScreen);
preloader.addEventListener(Event.COMPLETE, SWFDownloadComplete);
preloader.addEventListener(FlexEvent.INIT_PROGRESS, FlexInitProgress);
preloader.addEventListener(FlexEvent.INIT_COMPLETE, FlexInitComplete);
}
private function SWFDownLoadScreen(event : ProgressEvent) : void
{
var prog : Number = event.bytesLoaded/event.bytesTotal * 100;
if (this.loader)
{
this.loader.progress = prog;
}
}
private function handleTimerTick(event : TimerEvent) : void
{
this.stage.addChild(this);
this.loader.x = (this.stageWidth - this.loader.width)/2;
this.loader.y = (this.stageHeight - this.loader.height)/2;
this.loader.refresh();
}
private function SWFDownloadComplete(event : Event) : void {}
private function FlexInitProgress(event : Event) : void {}
private function FlexInitComplete(event : Event) : void
{
this.loader.ready = true;
this._timer.stop();
this.dispatchEvent(new Event(Event.COMPLETE));
}
override protected function showDisplayForInit(elapsedTime:int, count:int):Boolean
{
return true;
}
override protected function showDisplayForDownloading(elapsedTime:int,
event:ProgressEvent):Boolean
{
return true;
}
}
}
にloadscreen
package com.YYY.XXX.shell.view
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.display.Loader;
import flash.display.Sprite;
import flash.utils.ByteArray;
import mx.graphics.codec.PNGEncoder;
public class LoadScreen extends Loader {
//~ Settings ----------------------------------------------------------
private static var _BarWidth : int = 153; // Progress bar width
private static var _BarHeight : int = 12; // Progress bar height
private static var _LogoHeight : int = 153; // Logo picture height
private static var _LogoWidth : int = 68; // Logo picture width
private static var _Padding : int = 5; // Spacing between logo and progress bar
private static var _LeftMargin : int = 0; // Left Margin
private static var _RightMargin : int = 0; // Right Margin
private static var _TopMargin : int = 1; // Top Margin
private static var _BottomMargin : int = 1; // Bottom Margin
private static var _BarBackground : uint = 0xFFFFFF; // background of progress bar
private static var _BarOuterBorder : uint = 0x737373; // color of outer border
private static var _BarColor : uint = 0x6F9FD5; // color of prog bar
private static var _BarInnerColor : uint = 0xFFFFFF; // inner color of prog bar
//~ Instance Attributes -----------------------------------------------
[Embed(source="/asset/embed/img/XXX.gif")]
private var MyLogoClass: Class;
private var _logo : Bitmap;
private var _logoData : BitmapData;
private var isReady : Boolean = false;
public var progress : Number;
//~ Constructor -------------------------------------------------------
public function LoadScreen()
{
super();
this.progress = 0;
this._logo = new MyLogoClass as Bitmap;
}
//~ Methods -----------------------------------------------------------
public function refresh() : void
{
this._logoData = this.draw();
var encoder : PNGEncoder = new PNGEncoder();
var bytes : ByteArray = encoder.encode(this._logoData);
this.loadBytes(bytes);
}
override public function get width() : Number
{
return Math.max(_BarWidth, _LogoWidth) + _LeftMargin + _RightMargin;
}
override public function get height() : Number
{
return _LogoHeight + _BarHeight + _Padding + _TopMargin + _BottomMargin;
}
private function draw() : BitmapData
{
// create bitmap data to create the data
var data : BitmapData = new BitmapData(this.width, this.height, true, 0);
// draw the progress bar
var s : Sprite = new Sprite();
var g : Graphics = s.graphics;
// draw the bar background
g.beginFill(_BarBackground);
g.lineStyle(2, _BarOuterBorder, 1, true);
var px : int = (this.width - _BarWidth)/2;
var py : int = _TopMargin + _LogoHeight + _Padding;
g.drawRoundRect(px, py, _BarWidth, _BarHeight, 2);
var containerWidth : Number = _BarWidth - 4;
var progWidth : Number = containerWidth * this.progress/100;
g.beginFill(_BarColor);
g.lineStyle(1, _BarInnerColor, 1, true);
g.drawRect(px + 1, py + 1, progWidth, _BarHeight - 3);
data.draw(s);
// draw the logo
data.draw(this._logo.bitmapData, null, null, null, null, true);
return data;
}
public function set ready(value : Boolean) : void
{
this.isReady = value;
this.visible = !this.isReady;
}
public function get ready() : Boolean { return this.isReady; }
}
}
関連する問題
- 1. のFlex 4
- 2. のFlex 4 - スクローラースキン
- 3. Flex 4のSOAP応答4
- 4. Flex 4モジュールエラー#1009
- 5. flex 4ロードモジュール
- 6. Flex 4 Scroller
- 7. Flexでのセンタリングコンテンツ4
- 8. Flex 4プロジェクトのコマンドラインビルド
- 9. Adobe AIR - イメージ付きカスタムプリローダー
- 10. flex 4:カスタムCSS値
- 11. Flex 4イベントリスナのメインアプリケーションイベントのスキン
- 12. FlexでのPOPUPのドラッグアンドドロップ4
- 13. 右クリックメニューのFlex 4 RichEditableText
- 14. Flex 4ローダーのステータスがデータサービス
- 15. Flex 4の垂直タブ
- 16. のFlex 4 Slidedown効果
- 17. Flash Builder 4でFlex 4テーマをコンパイル
- 18. BrowserManager戻り値null - Flex 4
- 19. timer complete start repeatCount flex 4
- 20. は、Flex 3および4
- 21. Adobe Flex 4 Tree Treelistdata
- 22. 移行のFlex 3からのFlexへ4つのエラー
- 23. AS3とFlex 4 - FlexのMXMLファイルに適用AS3クラス
- 24. Flexエラー:Flex 3から4への移行で2025
- 25. Flex 4のAdobe Flexチャート:カテゴリ軸付きデカルトデータキャンバス?
- 26. のAdobeのFlex 4のテキストの高さ
- 27. Flex 4 ItemRendererのpartAdded()の代わり
- 28. Flexユニット4の設定方法
- 29. DataGridColumnのFlex 4 CenterレンダリングされたCheckBox
- 30. Flex 4 WYSIWYGの基本的なHTMLスタイリング?
ウィッシュ...あなたはそれが、このスクリプトは何を参照されていないことが重要だと言う時に正しいですこれはコードsaを持っていた凄い! – Kieveli
なぜコードサンプルが必要ですか?私はすでに問題を見つけました... – davr