Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   реалистичная вода (http://www.flasher.ru/forum/showthread.php?t=137503)

dmitry bond 15.03.2010 14:16

реалистичная вода
 
Написал код ksoo , спасибо ему большое , все ок
Код AS3:

package 
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.display.StageScaleMode;
        import flash.filters.DisplacementMapFilter;
        import flash.geom.Point;
 
        /**
        * ...
        * @author Ksoo
        */

        public class Main extends Sprite
        {
                [Embed(source = 'image.jpg')]
                private var waterImage:Class;
                private var water_mc:Bitmap;
                private var myfilters:Array;
                private var myBitmap:BitmapData;
                private var i:int;
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        filters = new Array();                       
                        stage.scaleMode = StageScaleMode.NO_SCALE;
 
                        addEventListener(Event.ENTER_FRAME, anim);
                        myBitmap = new BitmapData(390,293,false,0);
                        var pt:Point = new Point(0,0);
                        var mpoint :Point = new Point(0,0);
                        var myDispl:DisplacementMapFilter = new DisplacementMapFilter(myBitmap, mpoint, 1, 2, 10, 50);
                        water_mc = new waterImage();
                        myfilters = new Array();
                        myfilters.push(myDispl);
                        water_mc.filters = myfilters;
                        addChild(water_mc);
                        i = 1;
 
                }
 
                private function anim(e:Event):void {
                        var filterList:Array = water_mc.filters;
                        var offset:Array;
                        offset = new Array();
                        offset.push(new Point(0, 0));
                        offset.push(new Point(i,i/4));
                        myBitmap.perlinNoise(50, 5, 2, 50, true, false, 7, true, offset);
                        //myBitmap.perlinNoise(
                        filterList.mapBitmap = myBitmap;
                        water_mc.filters = filterList;
                        i++;
                }
 
        }
 
}

Но код не может перекодировать файл image.jpg , если будет понятнее то вот ошибки :
unable to resolve 'image.jpg' for transcoding

Unable to transcode image.jpg.

помогите пожалуйста

AlexDesinger 15.03.2010 14:26

дк а вы через чего его компилируете то?
Если через flash, то, по-моему у него нет Embed - это для Flex, подгрузите картинку через лоадер или закиньте в библиотеку. Или уж компилируйте через Flex =)

etc 15.03.2010 14:41

Очевидно, что надо положить image.jpg рядом с проектом.

dmitry bond 15.03.2010 14:51

положил и теперь пишет
1017: The definition of base class BitmapAsset was not found.

Добавлено через 1 минуту
он мне предложил загрузить библеотеку flex , но почемуто нечего не происходит , фотка какая была , такая и осталась

Добавлено через 6 минут
вот исходник:
http://bda.my1.ru/novaja_papka-2.rar

etc 15.03.2010 15:05

Ну тогда просто в либу картинку положите и прицепите.
И да, отмазки «я не умею» — не принимаются.

dmitry bond 15.03.2010 15:19

Я учусь только благодаря вашему сайту
Не гоните в шею если реально смешно , но я превратил картинку в мувик , а его уже добавил в код
Код AS3:

[Embed(source = image_mc)]

но вышли ошибки , подскажите как прицеплять объект с библиотеки
прошу не закрывайте тему

GentleFLASH 15.03.2010 15:45

Вот там, где у тебя исходник выложен, вот в нем замени в первом кадре весь код на:
Код AS3:

var myClass:Main = new Main();
 
this.addChild( myClass );

Удали слой с картинкой в исходнике, и вообще ее из библиотеки.
Далее имена классов принято нзывать с большой буквы, т.е Main, а не main. И создавать экземляры классов принято со скобочками, т.е new Main(), а не new main.
Да и вообще, найди книгу где учат основам AS3.

AlexDesinger 15.03.2010 17:31

мдааа, чувак, совет - срочно бежать за книгой К.Мук as3, все просто - открываете flash проект, стираете весь код со своего первого кадра, в поле Document Class пишете одно-единственно слово - main, дальше Cntr+Enter - и будет вам счастье.

Подсказка - это поле находится в панели propeties если щелкнуть на пустом месте в проекте, и да, картинку можно удалить и со стейджа, и из библиотеки.

etc
А разве Embed используется во flash при компиляции? У меня раньше были ошибки при попытке так картинку вшить, или я чего-то не знаю?

GentleFLASH 15.03.2010 18:06

AlexDesinger Flash CS4 поддерживает метатег Embed ;)

AlexDesinger 15.03.2010 18:40

Цитата:

Flash CS4
ага, вот оно в чем дело, а то я раньше на cs3 сидел и чего то ничего не получалось )))


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

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