![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Адрес: Россия, Самара
Сообщений: 6
|
Добрый день!
У меня возникла такая проблема: На нашем сервере установлена программа SWFTools. Имеется база MSSQL с внедренными в нее в бинарном виде PDF файлами. С помощью PHP происходит выгрузка объекта и конвертация его в SWF-ролик. Я написал оболочку, которая может просматривать, масштабировать, листать файл. Все работает, только есть одна проблемка: при загрузке объемного SWF не сразу открывается выбранная страница, а сначала как бы "перелистывается" весь документ, и потом уже останавливается на нужном месте. Пример того, о чем я говорю, вот тут: http://lib.smr.ru/pro2011/doc.php?id=135&table=2 Вот мой код: import flash.external.ExternalInterface; ExternalInterface.addCallback("sendFromJS", null, recieveFromJS); ExternalInterface.call("flashIsReady"); function recieveFromJS(a1) { _global.def_url = a1 [0]; page = a1 [1]; if (page=='nopage') { _global.num = 1; } else { _global.num = page; zakmes.gotoAndPlay(2); } _global.getid = a1 [2]; _global.table = a1 [3]; } var pic :MovieClip; var imageContainer :MovieClip file="pdf/"+def_url; //file="aist_manual.swf"; pic=this.createEmptyMovieClip("pic",0); navi.swapDepths(100); zakmes.swapDepths(99); loadImage(file,_global.num); //ПЕРЕТАСКИВАНИЕ КАРТИНКИ _root.pic.onPress = function() { startDrag(pic,false); }; _root.pic.onRelease = function() { stopDrag(); }; //ПЕРЕЛИСТЫВАНИЕ СТРАНИЦ navi.left.onPress = function() { _global.num=_global.num-1; loadImage(file,_global.num); }; navi.rightbut.onPress = function() { _global.num=num+1; loadImage(file,_global.num); }; //ЗАКЛАДКА navi.zakladka.onPress = function() { url="doc.php?act=add_zakladka&page="+num+"&id="+getid+"&table="+table; getURL(url); }; //МАСШТАБИРОВАНИЕ КНОПКАМИ navi.zoomin.onPress = function() { if (pic._width<pic._height) { if (pic._height<2100) { s=pic._height/pic._width; pic._height=pic._height+50; pic._width=pic._width+(50/s); pic._y=pic._y-(25/2); pic._x=pic._x-((50/s)/2) } } else { if (pic._width<2100) { s=pic._width/pic._height; pic._width=pic._width+50; pic._height=pic._height+(50/s); pic._y=pic._y-((50/s)/2) pic._x=pic._x-(25/2); } } }; navi.zoomout.onPress = function() { if (pic._width<pic._height) { if (pic._height>100) { s=pic._height/pic._width; pic._height=pic._height-50; pic._width=pic._width-(50/s); pic._x=pic._x+((50/s)/2) pic._y=pic._y+(25/2); } } else { if (pic._width>100) { s=pic._width/pic._height; pic._width=pic._width-50; pic._height=pic._height-(50/s); pic._y=pic._y+((50/s)/2) pic._x=pic._x+(25/2); } } }; //МАСШТАБИРОВАНИЕ КОЛЕСИКОМ МЫШИ var mListener:Object = new Object(); mListener.onMouseWheel = function (delta:Number) { if (delta<0) { if (pic._width<pic._height) { if (pic._height>100) { s=pic._height/pic._width; pic._height=pic._height-50; pic._width=pic._width-(50/s); pic._x=pic._x+((50/s)/2) pic._y=pic._y+(25/2); } } else { if (pic._width>100) { s=pic._width/pic._height; pic._width=pic._width-50; pic._height=pic._height-(50/s); pic._y=pic._y+((50/s)/2) pic._x=pic._x+(25/2); } } } if (delta>0) { if (pic._width<pic._height) { if (pic._height<2100) { s=pic._height/pic._width; pic._height=pic._height+50; pic._width=pic._width+(50/s); pic._y=pic._y-(25/2); pic._x=pic._x-((50/s)/2) } } else { if (pic._width<2100) { s=pic._width/pic._height; pic._width=pic._width+50; pic._height=pic._height+(50/s); pic._y=pic._y-((50/s)/2) pic._x=pic._x-(25/2); } } } } Mouse.addListener(mListener); function loadImage(file,num) { imageContainer = pic.createEmptyMovieClip("imageContainer"+currentLoadedIndex, currentLoadedIndex); imageContainer._alpha = 100; var imageToLoad:MovieClip = imageContainer.createEmptyMovieClip("imageToLoad", 0); var loaderListener:Object = {}; loaderListener.onLoadInit = function(image:MovieClip) { pic._width=image._width; pic._height=image._height; pic._x=1; pic._y=1; if (num>(image._totalframes)) { _global.num=num-1; } if (!num) { _global.num=1; } image.gotoAndPlay(_global.num); image.stop(_global.num); navi.fn.text="страница "+_global.num+" из "+(image._totalframes); } var imageLoader:MovieClipLoader = new MovieClipLoader(); imageLoader.addListener(loaderListener); imageLoader.loadClip(file, imageToLoad); } Последний раз редактировалось blackrid; 28.06.2011 в 11:21. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:06. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|