Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.06.2011, 11:17
blackrid вне форума Посмотреть профиль Отправить личное сообщение для blackrid Найти все сообщения от blackrid
  № 1  
Ответить с цитированием
blackrid

Регистрация: Oct 2009
Адрес: Россия, Самара
Сообщений: 6
По умолчанию Проблема с подгружаемым 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 июля мне нужно сдать проект, а эта штучка все портит...


Последний раз редактировалось blackrid; 28.06.2011 в 11:21.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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