Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Оптимизация кода под 6-ой плеер (http://www.flasher.ru/forum/showthread.php?t=81213)

kayama 14.06.2006 17:41

Оптимизация кода под 6-ой плеер
 
Наверно, прошу слишком многого, но и все же...

Взято из туторов 8ки по созданию динамической галереи, но работает только под 7ой и 8ой плееры, а нужно под 6ой, но так как я не являюсь полноценным кодером - понимаю код только на уровне логики, понять чем они отличаются для меня сверхсложность...

Если кому не сложно...

Код:

import mx.transitions.*;
_global.thisX = 0;
_global.thisY = 0;
_global.stageWidth = 884;
_global.stageHeight = 401;
var gallery_xml:XML = new XML();
gallery_xml.ignoreWhite = true;
gallery_xml.onLoad = function(success:Boolean) {
        try {
                if (success) {
                        var images:Array = this.firstChild.childNodes;
                        var gallery_array:Array = new Array();
                        for (var i = 0; i<images.length; i++) {
                                gallery_array.push({src:images[i].firstChild.nodeValue});
                        }
                        displayGallery(gallery_array);
                } else {
                        throw new Error("Unable to parse XML");
                }
        } catch (e_err:Error) {
                trace(e_err.message);
        } finally {
                delete this;
        }
};
gallery_xml.load("gt-p1.xml");
function displayGallery(gallery_array:Array) {
        var galleryLength:Number = gallery_array.length;
        for (var i = 0; i<galleryLength; i++) {
                var thisMC:MovieClip = this.createEmptyMovieClip("image"+i+"_mc", i);
                mcLoader_mcl.loadClip(gallery_array[i].src, thisMC);
                preloaderMC = this.attachMovie("preloader_mc", "preloader"+i+"_mc", 5000+i);
                preloaderMC.bar_mc._xscale = 0;
                preloaderMC.progress_txt.text = "0%";
                thisMC._x = _global.thisX;
                thisMC._y = _global.thisY;
                preloaderMC._x = _global.thisX;
                preloaderMC._y = _global.thisY+20;
                if ((i+1)%3 == 0) {
                        _global.thisX = 0;
                        _global.thisY += 110;
                } else {
                        _global.thisX += 80+30;
                }
        }
}
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
        var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
        var preloaderMC = target_mc._parent["preloader"+target_mc.getDepth()+"_mc"];
        preloaderMC.bar_mc._xscale = pctLoaded;
        preloaderMC.progress_txt.text = pctLoaded+"%";
};
mclListener.onLoadInit = function(evt:MovieClip) {
        evt._parent["preloader"+evt.getDepth()+"_mc"].removeMovieClip();
        var thisWidth:Number = evt._width;
        var thisHeight:Number = evt._height;
        var borderWidth:Number = 2;
        var marginWidth:Number = 10;
        evt.scale = 30;
        evt.lineStyle(borderWidth, 0xE30083, 100);
        evt.beginFill(0xE30083, 100);
        evt.moveTo(-borderWidth-marginWidth, -borderWidth-marginWidth);
        evt.lineTo(thisWidth+borderWidth+marginWidth, -borderWidth-marginWidth);
        evt.lineTo(thisWidth+borderWidth+marginWidth, thisHeight+borderWidth+marginWidth);
        evt.lineTo(-borderWidth-marginWidth, thisHeight+borderWidth+marginWidth);
        evt.lineTo(-borderWidth-marginWidth, -borderWidth-marginWidth);
        evt.endFill();
        evt._xscale = evt.scale;
        evt._yscale = evt.scale;
        evt.onRollOver = function() {
        };
        evt.onPress = function() {
                this.startDrag();
                this._xscale = 100;
                this._yscale = 100;
                this.origX = this._x;
                this.origY = this._y;
                this.origDepth = this.getDepth();
                this.swapDepths(this._parent.getNextHighestDepth());
                this._x = _xmouse-150;
                this._y = _ymouse-150;
                Mouse.hide();
                mx.transitions.TransitionManager.start(this, {type:mx.transitions.Zoom, direction:mx.transitions.Transition.IN, duration:0.5, easing:mx.transitions.easing.Elastic.easeOut});
        };
        evt.onRelease = function() {
                this.stopDrag();
                this._xscale = this.scale;
                this._yscale = this.scale;
                this._x = this.origX;
                this._y = this.origY;
                Mouse.show();
        };
        evt.onReleaseOutside = evt.onRelease;
};
mcLoader_mcl.addListener(mclListener);

:rolleyes:

iNils 14.06.2006 17:51

Лишнее :)
1. try/catch/finally
2. MovieClipLoader
3. TransitionManager работает с версии 6.0.79.0

Madasan 14.06.2006 17:55

Надо все функции проверить на соответствие по хэлпу, например:
Цитата:

getNextHighestDepth()
Availability: ActionScript 1.0; Flash Player 7

iNils 14.06.2006 18:14

Цитата:

Сообщение от Madasan
Надо все функции проверить на соответствие по хэлпу, например:

Проглядел :) Это в таком месте хитром используют, в createEmptyMovieClip и attachMovie этого не было.

etc 14.06.2006 18:22

Типизацию надо ещё убрать

Nirth 14.06.2006 18:27

Цитата:

Типизацию надо ещё убрать
если экспортировать в Flash player 6, ActionScript 2.0, то не надо.

если под ActionScript 1.0, то надо еще транзишн менеджер убрать.

kayama 14.06.2006 18:55

Цитата:

Сообщение от iNils
Лишнее :)
1. try/catch/finally
2. MovieClipLoader
3. TransitionManager работает с версии 6.0.79.0

Ну с 1 и 2 ладно, а без третьего мне сложновато будет (((

Цитата:

Сообщение от __etc
Типизацию надо ещё убрать

Это магия? Или я чего-то в упор не пойму...Или ты имеешь ввиду названия типа blabla_mc?

А вообще почти получилось, всем спасиба...

Nirth 14.06.2006 19:25

не имеет смысла убирать типизацию.
ибо тебе всеравно нужно экспортировать для ActionScript 2.0

etc 14.06.2006 19:33

Цитата:

Сообщение от kayama
Это магия? Или я чего-то в упор не пойму...Или ты имеешь ввиду названия типа blabla_mc?

Я имею ввиду типизацию


Часовой пояс GMT +4, время: 16:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.