PDA

Просмотр полной версии : Внешние данные:Прелоад для загружаемой картинки


Chronos
13.11.2006, 12:21
Творческого времени всем!:-)Вопрос простой:
Заходит пользователь на сайт и загружает картинку во flash-ку.
Нужен код прелоада того, что он загружает.
Как загрузить картинку на сервер, а потом во flash - это не вопрос.
Вопрос именно в прелоаде. Чтоб проценты показывались.

Весь сайт просмотрел, исходники, похожие темы... Все почему-то ограничились loadMovie("имя загружаемого фаила", "имя клипа"); без прелоадера.

Понимаю, что это просто должно быть, но вот не соображу :-(

jaydee
14.11.2006, 13:12
Можешь почитать доку, и сделать сам. Это не сложно. А можешь взять уже то готовое, что предлагает в доке макромедия, если нет времени:

Номер 1:
To preload SWF and JPEG files into movie clip instances, you can use the MovieClipLoader
class. This class provides an event listener mechanism to give notification about the status of
file downloads into movie clips. To use a MovieClipLoader object to preload SWF and JPEG
files, you must complete the following:
Create a new MovieClipLoader object You can use a single MovieClipLoader object to
track the downloading progress of multiple files or create a separate object for each file’s
progress. Create a new movie clip, load your contents into it, then create the
MovieClipLoader object as shown in the following code:
this.createEmptyMovieClip("img_mc", 999);
var my_mcl:MovieClipLoader = new MovieClipLoader();
Create a listener object and create event handlers The listener object can be any
ActionScript object, such as a generic Object object, a movie clip, or a custom component.
The following example creates a generic listener object named loadListener and defines for
itself onLoadError, onLoadStart, onLoadProgress, and onLoadComplete functions:
// Create listener object:
var mclListener:Object = new Object();
mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String,
status:Number) {
trace("Error loading image: " + errorCode + " [" + status + "]");
};
mclListener.onLoadStart = function(target_mc:MovieClip):Void {
trace("onLoadStart: " + target_mc);
};
mclListener.onLoadProgress = function(target_mc:MovieClip,
numBytesLoaded:Number, numBytesTotal:Number):Void {
var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
trace("onLoadProgress: " + target_mc + " is " + numPercentLoaded + "%
loaded");
};
mclListener.onLoadComplete = function(target_mc:MovieClip,
status:Number):Void {
trace("onLoadComplete: " + target_mc);
};
Номер 2:
To display downloading progress by using the ProgressBar component:
1. Create a new Flash document, and save it as progress.fla.
2. Open the Components panel (Window > Components).
3. Drag a ProgressBar component from the Components panel to the Stage.
4. In the Property inspector (Window > Properties > Properties), name the ProgressBar
component my_pb.
5. Select Frame 1 in the Timeline, and open the Actions panel (Window > Actions).
6. Add the following code to the Actions panel:

var my_pb:mx.controls.ProgressBar;
my_pb.mode = "manual";
this.createEmptyMovieClip("img_mc", 999);
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip):Void {
my_pb.label = "loading: " + target_mc._name;
};
mclListener.onLoadProgress = function(target_mc:MovieClip,
numBytesLoaded:Number, numBytesTotal:Number):Void {
var pctLoaded:Number = Math.ceil(100 * (numBytesLoaded /
numBytesTotal));
my_pb.setProgress(numBytesLoaded, numBytesTotal);
};
my_mcl.addListener(mclListener);
my_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg",
img_mc);
Но лучше сделай сам, чем использовать это...
Поди загрузчик и переделывание под свои нужды сам сделаешь.

Chronos
14.11.2006, 18:09
Спасибо!
Проблема решена!:-)

iNils
14.11.2006, 18:13
jaydee, для оформления своего кода, надо использовать теги .