Embed image in flex

Status
Niet open voor verdere reacties.

as1

Gebruiker
Lid geworden
22 mrt 2009
Berichten
305
Hi,
ik ben een klein project aan het maken in flex wat later uit gaat groeien tot complete website maar er is een klein probleempje:

ik krijg de afbeelding opp geen enkele manier geladenik heb de simpelste manier geprobeerd met <mx:Image source="info.png"/>
deze zat binnenin een VBox in een viewstack (omdat ik gebruik maak van tabbar)

nou ik heb wat opgezocht en dit is de code die ik nu heb (het gaat om het deel in de VBOX met de label Info)
(maar het werkt dus niet)

HTML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#0018FF, #000000]">
<mx:Panel title=":::JN Swalmen::: Site Offline" width="456" height="321" x="10">
<mx:TabBar dataProvider="viewstack1" width="436"/>
	<mx:ViewStack id="viewstack1" width="433" height="244" alpha="0.0">
		<mx:Form label="Welcome" width="100%" height="100%" alpha="0.0">
		<mx:Text width="403" height="217" fontWeight="bold" textDecoration="normal" fontStyle="normal" alpha="0.0">
			<mx:text><![CDATA[Sorry,
De site is Offline voor onderhoud en vanwege technische problemen,
Bij dit heben julie de gelegenheid om ideen voor de site door te geven via
het feedback formulier op de volgende pagina

_______________________
JN Site Admin(s)
]]></mx:text>
		</mx:Text>
		</mx:Form>
		<mx:Form label="Ideen Formulier" width="100%" height="100%">
			<mx:FormItem label="">
				<mx:SWFLoader width="388" height="215" source="contactForm.swf"/>
			</mx:FormItem>
		</mx:Form>
		<mx:VBox label="Info" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
    <mx:Script>
        <![CDATA[
            import mx.core.BitmapAsset;

            [Embed(source="Info.png")]
            private var Info:Class;

            private function imgMod():void
            {
                var asset:BitmapAsset = new Info() as BitmapAsset;
                img3rd.source = asset;
            }

        ]]>
    </mx:Script>
    <mx:Image source="Info.png"/>
    <mx:Image source="{Info}"/>
    <mx:Image id="img3rd" creationComplete="imgMod()"/>
		</mx:VBox>
		
	</mx:ViewStack>
</mx:Panel>
</mx:Application>

iemand een idee??
 
Bij mij werkt dit gewoon :
Code:
<mx:Image source="Info.png"/>
Maar dan moet Info.png dus wel in dezelfde map als de swf staat én met een hoofdletter beginnen en extensie in kleine letters hebben.

Info.png is niet hetzelfde als info.png of info.PNG !

Hou er wel rekening mee dat er op deze manier (dus zonder te embedden) een vertraging zit op het weergeven van de afbeelding. Deze wordt namelijk maar opgehaald op de moment dat het element gecreëerd wordt.
 
Met embed word ie meteen geladen dat weet ik en oe fix ik dat dan
 
Als bovenstaande niet werkte, dan staat je afbeelding gewoonweg op de foute plaats of met een foute naam...

Indien je dan toch een Embedded image wil, kan je ook nog gebruik maken van een inline-embed:
Code:
<mx:Image source="@Embed(source='Info.png')"/>
 
??????

ik snap er niets van het werkt niet

het adres van de DEBUG build is
C:\Documents and Settings\Ruben Krauth\My Documents\Flex Builder 3\Offline\bin-debug\Offline.html

De afbeelding (debug build)
C:\Documents and Settings\Ruben Krauth\My Documents\Flex Builder 3\Offline\bin-debug\Info.png

(info.png is een Vista Information icoon)

In de release build werkte het ook niet en info.png stond gewwon in DEZEFDE map

mijn code is nu:

HTML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#0018FF, #000000]">
<mx:Panel title=":::JN Swalmen::: Site Offline" width="456" height="321" x="10">
<mx:TabBar dataProvider="viewstack1" width="436"/>
	<mx:ViewStack id="viewstack1" width="433" height="244" alpha="0.0">
		<mx:Form label="Welcome" width="100%" height="100%" alpha="0.0">
		<mx:Text width="403" height="217" fontWeight="bold" textDecoration="normal" fontStyle="normal" alpha="0.0">
			<mx:text><![CDATA[Sorry,
De site is Offline voor onderhoud en vanwege technische problemen,
Bij dit heben julie de gelegenheid om ideen voor de site door te geven via
het feedback formulier op de volgende pagina

_______________________
JN Site Admin(s)
]]></mx:text>
		</mx:Text>
		</mx:Form>
		<mx:Form label="Ideen Formulier" width="100%" height="100%">
			<mx:FormItem label="" width="415" height="100%">
				<mx:SWFLoader width="397" height="100%" source="contactForm.swf"/>
			</mx:FormItem>
		</mx:Form>
		<mx:VBox label="Info" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
<mx:Image source="@Embed(source='Info.png')"/>
		</mx:VBox>
		
	</mx:ViewStack>
</mx:Panel>
</mx:Application>
 
Hetgeen je image inlaad is de swf , niet de html.
Maar goed, ik meen dat die wel in dezelfde map staan...

Wat ik vond in de LiveDocs:
A SWF file can access one type of external resource only, either local or over a network; it cannot access both types. You determine the type of access allowed by the SWF file by using the use-network flag when you compile your application. When use-network flag is set to false, you can access resources in the local filesystem, but not over the network. The default value is true, which allows you to access resources over the network, but not in the local filesystem.

For more information on the use-network flag, see Using the Flex Compilers.

When you load images at run time, you should be aware of the security restrictions of Flash Player or AIR. For example, you can reference an image by using a URL, but the default security settings only permit Flex applications to access resources stored on the same domain as your application. To access images on other servers, you must use a crossdomain.xml file.

For more information on application security, see Applying Flex Security.

Heb jij een lokale webserver staan? Omdat ik vermoed dat je debugfolder zich niet binnen de webserver bevindt in elk geval. En een swf is standaard ingesteld om bestanden via internet te kunnen ophalen, maar niet gewoon op het lokale systeem. Wanneer jij je app opent, open je die lokaal, en is de verwijzing naar die afbeelding ook lokaal. En dat inladen is standaard uitgeschakeld...
 
ermm ik heb een lokale IIS 7 webserver staan maar het is eigenljijk ebstamt voor een linux apack lighthttpd webserver bestemd

em wat bedoel je met die hele lap tekst daar kan i niets uithalen
 
Die 'lap' tekst, is de uitleg waarom je image vermoedelijk niet ingeladen wordt als je app niet op een server staat.

Voor een lokale apache-server kan je kijken naar een installatiepakket (voor Windows) als WAMP/XAMPP/EasyPHP. Of wat misschien nog handiger is, is USBWebserver, die hoef je zelfs niet eens te installeren!
 
?? ik snap niet wat ik daarmee nu moet ik heb ook in de livedocs geken en gedaan wat erin staat, werkt niet ik kan m ook in flash zetten en SWFLOADER proberen


AS1
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan