Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 3
1

Проблем с заполнением прямоугольника изображением bitmapdata

20.10.2011, 01:21. Показов 1703. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет народ. Помогите пожалуйста. Есть задача (среда разработки flah builder 4) Нарисовать прямоугольник и заполнить его изображением нарисовать круг и залить его цветом.

В результате круг рисуется а прямоугольник прозрачный. Программа ошибок никаких не выдаёт. я так предполагаю что изображение не грузиться.
Подскажите что не так? где рыть ошибку?
вот код
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="1200" height="1200"
showStatusBar="false"
backgroundAlpha="0.0"
creationComplete= "openNewWindow()"
>
<fx:Script>
<![CDATA[
import flash.desktop.DockIcon;
import flash.desktop.NativeApplication;
import flash.desktop.SystemTrayIcon;
import flash.display.DisplayObject;
import flash.display.NativeWindow;
import flash.display.NativeWindowDisplayState;
import flash.display.NativeWindowResize;
import flash.display.NativeWindowSystemChrome;
import flash.display.NativeWindowType;
import flash.display.Screen;
import flash.events.Event;
import flash.events.InvokeEvent;
import flash.events.MouseEvent;
import flash.events.NativeWindowBoundsEvent;
import flash.events.NativeWindowDisplayStateEvent;
import flash.filesystem.File;
import flash.geom.Point;
import flash.geom.Rectangle;
import com.adobe.viewsource.ViewSource;
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.geom.Matrix;
import mx.controls.Alert;
import mx.core.IChildList;
import mx.core.UIComponent;
import mx.core.IUIComponent;
 
private function openNewWindow():void {
 
const screenRect:Rectangle = Screen.mainScreen.visibleBounds;
const screenWidth:int = screenRect.width;
const screenHeight:int = screenRect.height;
const winWidth:int = screenWidth * 0.25;
const winHeight:int = screenHeight * 0.75;
const winXrect:int = winWidth/2;
 
 
 
var loader:Loader = new Loader();
var request:URLRequest = new URLRequest("C:/Users/Андрей/Adobe Flash Builder 4/tour/src/v.png");
loader.load(request);
 
var myBitmap:BitmapData = new BitmapData(winWidth, winHeight, false, 0xFFFFFF);
 
myBitmap.draw(loader, new Matrix());
var matrix:Matrix = new Matrix();
//matrix.rotate(Math.PI/4);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
 
function drawImage(event:Event):void {
 
var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0xf1f1f1,1);
mySprite.graphics.drawCircle(winXrect, 0, 20);
 
mySprite.graphics.beginBitmapFill(myBitmap, matrix, false,true);
 
mySprite.graphics.drawRoundRect(0, 0, winWidth, winHeight,15);
mySprite.graphics.endFill();
 
 
var container:UIComponent = new UIComponent();
addElement( container );
container.addChild( mySprite );
rec.addElement(container);
}
 
function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
}
}
 
]]>
</fx:Script>
 
 
<fx:Declarations>
<fx:Component className="MyNativeWindow">
<mx:Window horizontalAlign="center" verticalAlign="middle" backgroundColor="blue" right="673" top="0">
 
</mx:Window>
</fx:Component>
</fx:Declarations>
 
 
<s:VGroup id="rec">
<mx:Button label="close" click="this.close()" x="187" y="10"/>
</s:VGroup>
 
</s:WindowedApplication>
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2011, 01:21
Ответы с готовыми решениями:

Не будет ли проблем с изображением? Подключение монитора и телевизора к одной видеокарте.
Хочу подключить к своему компьютеру телевизор параллельно с монитором, в видеокарте Geforce 560 Ti...

Не могу поставить подпись под изображением и над изображением, и как изображение разместить в центре страницы
Вот сам код и скриншот что нужно сделать &lt;!DOCTYPE HTML PUBLIC &quot;-/W3C//DTD HTML 4.01...

BitmapData и Bitmap
Привет, есть у меня Bitmap с некой нарисованной графикой. У меня вопрос, если графика внутри...

Работа с BitmapData
пишу подобие Paint'а. В одном из обработчиков использую BitmapData. вроде все правильно, однако на...

2
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
20.10.2011, 06:48 2
varnava, рисуй в битмапу изображение после загрузки, а не сразу после старта
1
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 3
20.10.2011, 15:20  [ТС] 3
спасибо большое за подсказку, понял ошибку. Но не до конца решил проблему. область не заполняется изображением по типу мозаики а просто выводиться в заданных координатах. Почему-то игнорируется значение true в beginBitmapFill. Подскажите почему не заполняет repet -ом

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?xmxml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="900" height="700"
                       showStatusBar="false"
                       backgroundAlpha="0.0"
                       creationComplete= "openNewWindow()"
                       >
    <fx:Script>
        <![CDATA[
            import flash.desktop.DockIcon;
            import flash.desktop.NativeApplication;
            import flash.desktop.SystemTrayIcon;
            import flash.display.DisplayObject;
            import flash.display.NativeWindow;
            import flash.display.NativeWindowDisplayState;
            import flash.display.NativeWindowResize;
            import flash.display.NativeWindowSystemChrome;
            import flash.display.NativeWindowType;
            import flash.display.Screen;
            import flash.events.Event;
            import flash.events.InvokeEvent;
            import flash.events.MouseEvent;
            import flash.events.NativeWindowBoundsEvent;
            import flash.events.NativeWindowDisplayStateEvent;
            import flash.filesystem.File;
            import flash.geom.Point;
            import flash.geom.Rectangle;
            import com.adobe.viewsource.ViewSource;
            
            import flash.display.Sprite;
            import flash.display.BitmapData;
            import flash.display.Loader;
            import flash.net.URLRequest;
            import flash.events.Event;
            import flash.events.IOErrorEvent;
            import flash.geom.Matrix;
            
            import mx.controls.Alert;
            import mx.core.IChildList;
            import mx.core.UIComponent;
            import mx.core.IUIComponent;
            
            //private var newWindow:MyNativeWindow;
            
            
            
            
            private function openNewWindow():void {
                
                const screenRect:Rectangle = Screen.mainScreen.visibleBounds;
                const screenWidth:int = screenRect.width;
                const screenHeight:int = screenRect.height;
                const winWidth:int = screenWidth * 0.25;
                const winHeight:int = screenHeight * 0.75;
                const winXrect:int = winWidth/2;
                
                
                
                    
            
                var loader:Loader = new Loader();
                    var request:URLRequest = new URLRequest("fon.jpg");
                    loader.load(request);              
                    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
                    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
                
                
                
                
                
                
                       function drawImage(event:Event):void {
                var mySprite:Sprite = new Sprite();
                var myBitmap:BitmapData = new BitmapData (winWidth, winHeight, false);         
                myBitmap.draw(loader, new Matrix());
                var matrix:Matrix = new Matrix();
                
                
                mySprite.graphics.beginFill(0xFFCC00,1);
                //mySprite.graphics.beginBitmapFill(myBitmap, matrix, true,true);
                mySprite.graphics.drawCircle(winXrect, 0, 20);
                
                //mySprite.graphics.beginFill(0xFFCC00,1);
                mySprite.graphics.beginBitmapFill(myBitmap, matrix, true,false);
                mySprite.graphics.drawRoundRect(0, 0, winWidth, winHeight,15);
                mySprite.graphics.endFill();
                
                var container:UIComponent = new UIComponent();
                addElement( container );               
                container.addChild( mySprite );
                rec.addElement(container);
                }
                
                function ioErrorHandler(event:IOErrorEvent):void {
                trace("Unable to load image: " + url);
                }
                
                
                
            }
            
        ]]>
    </fx:Script> 
    
    
    <fx:Declarations>
        <fx:Component className="MyNativeWindow">
            <mx:Window horizontalAlign="center" verticalAlign="middle" backgroundColor="blue" right="673" top="0">
                
                
                
                
                <mx:Button label="close" click="this.close()"/>
            </mx:Window>
        </fx:Component> 
    </fx:Declarations>
    
    
    <s:VGroup id="rec"  top="10">
        
        <mx:Button label="close" click="this.close()"/>
        
        
        
    </s:VGroup>
    
</s:WindowedApplication>
Добавлено через 29 минут
всё ошибку понял, не правильно указал размеры изображения, надо было именно размеры изображения а не окна в целом
0
20.10.2011, 15:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2011, 15:20
Помогаю со студенческими работами здесь

MovieClip в BitmapData
Можно ли получить доступ к BitmapData(е) MovieClip(a)? мне что то подсказывает что здесь замешано...

Отрисовка BitmapData
Есть: мувик mc. Нада: отрисовать его в нужном маштабе, а не по оригинальным размерам. Имеем код:...

BitmapData и unsafe-код
Подскажите пожалуйста, как мне с помощью указателей добраться до отдельного пикселя в изображении и...

Что такое bitmapData.Stride?
Мне нужно записать изображение в массив байтов. Во всех источниках это делается через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru