Форум 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)
-   -   Проблема с подгружаемым SWF (http://www.flasher.ru/forum/showthread.php?t=159172)

blackrid 28.06.2011 11:17

Проблема с подгружаемым SWF
 
Добрый день!

У меня возникла такая проблема:
На нашем сервере установлена программа SWFTools. Имеется база MSSQL с внедренными в нее в бинарном виде PDF файлами. С помощью PHP происходит выгрузка объекта и конвертация его в SWF-ролик.

Я написал оболочку, которая может просматривать, масштабировать, листать файл. Все работает, только есть одна проблемка: при загрузке объемного SWF не сразу открывается выбранная страница, а сначала как бы "перелистывается" весь документ, и потом уже останавливается на нужном месте. Пример того, о чем я говорю, вот тут:

http://lib.smr.ru/pro2011/doc.php?id=135&table=2

Вот мой код:

Код AS1/AS2:

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);
}

Очень прошу, помогите. До 4 июля мне нужно сдать проект, а эта штучка все портит...


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

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