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

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

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

Регистрация: Apr 2010
Сообщений: 1
По умолчанию Псевдо 3d вращение на AS3

Хотела спросить, нет ли у кого идей по вращению объекта мышью путем перемещения по кадрам временной шкалы?

Отличный пример на AS2 разобран здесь
http://www.flasher.ru/forum/showthread.php?t=135043
но нужен аналог на AS3.

Почти то что нужно описано на демиарте
http://demiart.ru/forum/index.php?showtopic=120424&st=0

код привожу ниже, но там мувик с кадрами с анимации вращения и мувик с кодом представляют собой два файла, где в мувик с кодом грузится флэшка с кадрами. Это не совсем то. Надо, чтоб было точь в точь как в примере выше - все в одном файле.
Есть идеи?

Код AS3:
CODE
package com{
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
 
/**
 * ...
 * @author MOHCTEP
 */
public class Main extends MovieClip {
 private var holder:Sprite;
 private var img:MovieClip;
 private var frames:int;
 private var oldX:Number;
 private var speedInFrames:Number;
 //
 public function Main() {
  addChild(holder = new Sprite());
  var ldr:Loader = new Loader();
  var url:URLRequest = new URLRequest('necke.swf');
  ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeLoading);
  ldr.load(url);
 }
 //
 private function completeLoading(e:Event) {
  img = e.target.content as MovieClip;
  holder.addChild(img);
  img.stop();
  img.x = (stage.stageWidth - img.width) / 2;
  img.y = 10;
  frames = img.totalFrames;
  speedInFrames = img.width / frames/2;
  holder.addEventListener(MouseEvent.MOUSE_DOWN, mouseList);
  holder.addEventListener(MouseEvent.MOUSE_UP, mouseList);
 }
 //
 private function mouseList(e:MouseEvent):void {
  //mouseMove mouseDown mouseUp mouseOut
  switch(e.type) {
   case 'mouseDown':
    e.target.addEventListener(MouseEvent.MOUSE_MOVE, mouseList);
    e.target.addEventListener(MouseEvent.MOUSE_OUT, mouseList);
    oldX = e.localX;
    break;
   case 'mouseMove':
    var step:int = int((e.localX - oldX) / speedInFrames);
    if (step) {
     var diff:Number = step / Math.abs(step);
     var cf = img.currentFrame+ diff;
     cf = cf<=0?frames:cf>frames?1:cf;
     img.gotoAndStop(cf);
     oldX = e.localX;
    }
    break;
   default:
    e.target.removeEventListener(MouseEvent.MOUSE_MOVE, mouseList);
    e.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseList);
    break;
  }
 }
 //
}
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
AS3 , вращение , псевдо 3d
Опции темы
Опции просмотра

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

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


 


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


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