![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
Задача сделать панорамное смещение(слайдшоу такое) картинок, сменяющих друг друга.
Помогите с кодом |
|
|||||
|
Banned
Регистрация: Apr 2012
Сообщений: 162
|
|
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
А по подробнее?!
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
cvasy, если хотите получать ответы на этом форуме, научитесь задавать вопросы. У Вас даже название темы непонятно как связано с вопросом, а вопрос ниочем, с таким же успехом можно было просто написать "Помогите!".
Опишите проблему, покажите что Вы пытались сделать и что из этого получилось/что не получилось.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 86
|
Можно написать свой класс - BitmapMovieClip, допустим; наследовать его от Bitmap, но внутри хранить несколько BitmapData в массиве.
Добавлено через 4 минуты От Bitmap потому, что тут же, наверное, про растровые изображения вопрос... Последний раз редактировалось FlasherEgor; 04.03.2014 в 15:45. |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
Wolsh Да, упрек принят. Действительно задавать нормально вопрос не умею - я новичек
по коду у меня вот что сейчас: import flash.events.Event; var skorost=2; var new_img:img_0001=new img_0001; new_img.y = stage.stageHeight/2; addChild(new_img); new_img.x = new_img.stage.width/2; new_img.addEventListener(Event.ENTER_FRAME,fonedet); function fonedet(e:Event) { if ( new_img.x >= -2300) { e.target.x-=skorost; } else { new_img.removeEventListener(Event.ENTER_FRAME,fonedet); removeChild(new_img); trace ("Есть один!"); var new_img2:img_0002=new img_0002; new_img2.y = stage.stageHeight/2; addChild(new_img2); new_img2.x = new_img2.stage.width/2; new_img2.addEventListener(Event.ENTER_FRAME,fonedet2); function fonedet2(e:Event) { if ( new_img2.x >= -2400) { e.target.x-=skorost; } else { new_img2.removeEventListener(Event.ENTER_FRAME,fonedet2); removeChild(new_img2); trace ("Есть второй!"); var new_img3:img_0003=new img_0003; new_img3.y = stage.stageHeight/2; addChild(new_img3); ... Зациклить - после проигрывания последней картинки, начиналась все с начала(не пойму почему) Сгладить движение картинок (картинки полноэкранные панорамы - по 5МБ каждая) Добавлено через 1 час 26 минут Типа того: import flash.display.Bitmap; import flash.display.BitmapData; const IMAGE_URL:String = "img/001.jpg"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bitmap1:Bitmap; function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; var myBitmap:Bitmap = new Bitmap(bmp.bitmapData); myBitmap.x =0; myBitmap.y = 0; addChild(myBitmap); addEventListener(Event.ENTER_FRAME, scrollBitmap); } function scrollBitmap(event:Event):void { myBitmap.scroll(1, 0); } Что не так? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
myBitmap у Вас объявлена в функции ldr_complete, и является ее локальной (внутренней) переменной, невидимой для других членов класса.
Нужно объявить ее в теле класса, как это сделано с ldr.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
Спасибо. Исправил:
import flash.display.Bitmap; import flash.display.BitmapData; const IMAGE_URL:String = "img/001.jpg"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bmp:Bitmap = ldr.content as Bitmap; var myBitmap:Bitmap = new Bitmap(bmp.bitmapData); function ldr_complete(evt:Event):void { myBitmap.x =0; myBitmap.y = 0; addChild(myBitmap); addEventListener(Event.ENTER_FRAME, scrollBitmap); } function scrollBitmap(event:Event):void { myBitmap.scroll(-1, 0); } Обращение к возможно неопределенному методу scroll через ссылку статического типа flash.display:Bitmap Что не так в коде? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Надо было только объявить в теле класса, а инициализировать (присвоить конкретное значение) только когда картинка загрузится. То есть в теле пишете просто var myBitmap:Bitmap; — это Объявление переменной. А в обработчике события окончания загрузки присваиваете ей значение: myBitmap = new Bitmap( (ldr.content as Bitmap).bitmapData );
Только, если их много будет, то надо складывать ссылки на битмапдаты (или битмапы?) в какой-нибудь массив. Добавлено через 5 минут Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
И все таки не понимаю, что не так. Вроде код-то простой...
import flash.display.Bitmap; import flash.display.BitmapData; import flash.events.Event; const IMAGE_URL:String = "img/001.jpg"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var myBitmap:Bitmap = new Bitmap; function ldr_complete(event:Event):void { myBitmap = new Bitmap( (ldr.content as Bitmap).bitmapData ); myBitmap.x = 0; myBitmap.y = 0; addChild(myBitmap); addEventListener(Event.ENTER_FRAME, scrollBitmap); } function scrollBitmap(event:Event):void { myBitmap.scroll(-1, 0); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|